【问题标题】:Array List Taking only One element数组列表只取一个元素
【发布时间】:2016-06-23 22:20:31
【问题描述】:

您好我正在尝试执行以下代码 sn -p

        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

【问题讨论】:

    标签: arrays vb.net arraylist


    【解决方案1】:

    发生这种情况是因为 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你可以找到一个工作示例

    【讨论】:

      猜你喜欢
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2019-03-26
      • 2021-05-15
      • 1970-01-01
      • 2015-08-13
      相关资源
      最近更新 更多