

以下のコードを実装後にタイトル通りのエラーが発生し始めました。  
調べても解決ができなかったのでこちらで質問させていただきます。  
心当たりがある方の回答をお待ちしております。

[code]

    protected bool IsShippingPatternChanged(int index)
    {return ((m_lFixedPurchaseFirstPatternStrings[index] != "") && (m_lFixedPurchaseFirstPatternStrings[index] != m_lFixedPurchasePatternStrings[index]));}
    
[/code]

追加：IsShippingPatternChangedが呼ばれているところです。

[code]

        <dl visible="<%# m_lFixedPurchaseFlgs[Container.ItemIndex] %>" runat="server">
        <dt visible='<%# IsShippingPatternChanged(Container.ItemIndex) %>' runat="server">初回配送パターン：</dt>
        <dd visible='<%# IsShippingPatternChanged(Container.ItemIndex) %>' runat="server"><%#: WebSanitizer.HtmlEncode(m_lFixedPurchaseFirstPatternStrings[Container.ItemIndex])%></dd>
        <dt visible='<%# IsShippingPatternChanged(Container.ItemIndex) %>' runat="server">2回目以降の配送パターン：</dt>
        <dt visible='<%# IsShippingPatternChanged(Container.ItemIndex) == false %>' runat="server">配送パターン：</dt>
    
[/code]


CC BY-SA 4.0
2023-02-13T07:48:34.680
93822
2023-02-15T01:59:55.273
2023-02-13T08:11:35.377
57086
57086
question
c#
インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。


## 何が起きているか

この部分で例外が出ているならば、  
コレクションとは`m_lFixedPurchaseFirstPatternStrings`のことを指し、  
そのインデックスとは`[]`の中、すなわち`index`を指します。  
「`index`は負ではない値で、`m_lFixedPurchaseFirstPatternStrings`のサイズより小さい必要がある」ということは  
`index`が負であるか、`m_lFixedPurchaseFirstPatternStrings`のサイズ以上のどちらかになってしまっているということです。

## どうすればよいか

`index`の実際の値を決めているのは`IsShippingPatternChanged`内ではなく、  
`IsShippingPatternChanged`を呼んでいるほうです。  
なので`IsShippingPatternChanged`を呼んでいる部分のコードを見る必要があります。

そのようにして元を辿っていって、どこで意図しない値が入りそうかを探りましょう。


CC BY-SA 4.0
2023-02-13T08:04:53.723
93824
2023-02-15T01:59:55.273
2023-02-15T01:59:55.273
13127
13127
93822
answer