数组列表仅采用一个元素

时间:2016-06-23 22:20:31

标签: arrays vb.net arraylist

我正在尝试执行以下代码段

        dim lst(10) as string
        dim arlist As New ArrayList
        Dim dr As SqlDataReader = cmd.ExecuteReader()
        While dr.Read()
            lst(0) = dr(0).ToString()
            lst(1) = dr(1).ToString()
            lst(2) = dr(2).ToString()
            lst(3) = dr(3).ToString()
            lst(4) = dr(4).ToString()
            lst(5) = dr(5).ToString()
            lst(6) = dr(6).ToString()
            lst(7) = dr(7).ToString()
            lst(8) = dr(8).ToString()
            lst(9) = dr(9).ToString()
            lst(10) = dr(10).ToString()
            arlist.Add(lst)
        End While
        dr.Close()

但是在数组列表'arlist'的最后,我只重复了一个元素

Error

1 个答案:

答案 0 :(得分:0)

这种情况正在发生,因为lst的当前实例的引用已添加到ArrayList,因此您在lst中所做的修改也会影响到ArrayList。因此,您将在arrayList的所有索引中重复Last值。你可以做的是,在循环中定义lst,如下所示:

Dim arlist As New ArrayList
Dim dr As SqlDataReader = cmd.ExecuteReader()
While dr.Read()
    Dim lst(10) as string
    lst(0) = dr(0).ToString()
    lst(1) = dr(1).ToString()
    '> Rest of elements    
    arlist.Add(lst)
End While
dr.Close()

Here你可以找到一个有效的例子