2

リストボックス内の各項目を文字列配列に入れようとしています。ただし、インデックスエラーが発生し続け、理由がわかりません。アレイでLINQを実行できるように、これを実行しています。これがエラーと問題のコードです。よろしくお願いします。

エラー:InvalidArgument='16'の値は'index'には無効です。パラメータ名:インデックス

コード:

    Dim size As Integer = lstBoxSeats.Items.Count()
    Dim seats(size) As String

    For i = 0 To size
        seats(i) = lstBoxSeats.Items(i).ToString()
    Next
4

2 に答える 2

4

配列はゼロベースで、カウントは実際のアイテム数です。インデックスのカウントから 1 を引く必要があります。

すなわち

訂正: count を使用して座席配列の寸法を決めていたため、座席配列に空の位置が残っていることに気付きました

Dim size As Integer = lstBoxSeats.Items.Count()-1  'Subtract 1 here instead of in the For statement
Dim seats(size) As String 

For i = 0 To size 
    seats(i) = lstBoxSeats.Items(i).ToString() 
Next 
于 2012-04-15T14:36:23.090 に答える
0

これは、インデックスがゼロベース、つまり 0 から始まるためです。カウントは 1 から始まるアイテムの量です。したがって、16 個のアイテムがある場合、最大インデックスは 15 (0-15) であり、カウントは 16(1-16) であることを意味します。

于 2013-01-14T13:29:38.283 に答える