我正在尝试执行以下代码段
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'的最后,我只重复了一个元素
答案 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你可以找到一个有效的例子