Arrays 仅包含一个元素的数组列表
您好,我正在尝试执行以下代码段Arrays 仅包含一个元素的数组列表,arrays,vb.net,arraylist,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() ls
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”的末尾,我只得到一个重复的元素
之所以发生这种情况,是因为
lst
的当前实例的引用被添加到ArrayList
中,因此您在lst中所做的修改也会影响ArrayList。因此,您将获得在arrayList的所有索引中重复的最后一个值。您可以做的是,在循环内定义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()
你可以找到一个有效的例子