我试图将列表框中的每个项目都放到字符串数组中。但是,我一直得到一个索引错误,我不知道为什么。我这样做,所以我可以在阵列上执行LINQ。这是错误和有问题的代码。感谢您提前提供任何帮助。
错误: InvalidArgument ='16'的值对'index'无效。 参数名称: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
答案 0 :(得分: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
答案 1 :(得分:0)
这是因为索引是基于零的,即从0开始,而Count是从1开始的项目数量,因此如果有16个项目则意味着最大索引是15(0-15)并且计数是16(1 -16)