2

我试图将列表框中的每个项目都放入一个字符串数组中。但是,我不断收到索引错误,我不知道为什么。我这样做是为了可以在阵列上执行 LINQ。这是错误和有问题的代码。感谢您提前提供任何帮助。

错误:InvalidArgument=“16”的值对“索引”无效。参数名称:索引

代码:

    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。

IE

更正: 刚刚意识到您正在使用 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 开始,而 Count 是从 1 开始的项目数量,所以如果有 16 个项目,则意味着最大索引为 15 (0-15),计数为 16(1-16)

于 2013-01-14T13:29:38.283 回答