Visual Basic列表框

时间:2012-04-15 14:31:25

标签: vb.net listbox

我试图将列表框中的每个项目都放到字符串数组中。但是,我一直得到一个索引错误,我不知道为什么。我这样做,所以我可以在阵列上执行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

2 个答案:

答案 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)