【问题标题】:why doesn't it add to the list为什么它不添加到列表中
【发布时间】:2013-12-11 08:05:47
【问题描述】:

这个问题是基于这个Link

我还没有找到答案,但我正在尝试解决方案并导致另一个问题..

Public Class markerRow
  Public MarkerName As String
  Public CameraID As Integer
  Public HostAddress As String
End Class

Public mr As New markerRow
Dim aList As New List(Of markerRow)

For Each dtrow In markerDtable.Rows
        mr.MarkerName = dtrow("MarkerName")
        mr.CameraID = dtrow("CameraID")
        mr.HostAddress = dtrow("HostAddress")
        aList.Add(New markerRow())
Next

从我的想法来看,这段代码应该将数据库中的每个数据添加到列表中的各个变量中。但我仍然不知道它到底做了什么。

我检查了aList.Count.ToString,它给了我 5 项,这是真的,因为我的数据库中有 5 行..

For Each elem In aList
        listbox.Items.Add(mr.MarkerName)
        listbox.Items.Add(mr.CameraID)
    Next

检查aList 中有哪些项目,我这样做了.. 不幸的是.. 它只给了我最后一个项目,5 次。 MarkerName Column 和 Camera ID Column 的最后一项。

我错过了什么?或者我的代码有什么问题?
aList 应该有上面数据库中的内容。不仅是最后一项。

【问题讨论】:

    标签: .net vb.net generic-list


    【解决方案1】:
    Public mr As New markerRow
    Dim aList As New List(Of markerRow)
    
    For Each dtrow In markerDtable.Rows
            mr.MarkerName = dtrow("MarkerName")
            mr.CameraID = dtrow("CameraID")
            mr.HostAddress = dtrow("HostAddress")
            aList.Add(New markerRow())
    Next
    

    在这里,您正在创建一个名为mr的markerRow,并为DataTable中的每一行更新它。此外,对于每一行,您创建 另一个 markerRow,并将新的添加到 aList。

    For Each elem In aList
        listbox.Items.Add(mr.MarkerName)
        listbox.Items.Add(mr.CameraID)
    Next
    

    然后,对于aList 中的每个元素,您将两个 项添加到ListBox,并且每次都是来自mr 的MarkerName 和CameraID,而不是来自mr 的数据aList的元素。


    您可能正在寻找类似的东西:

    Dim aList As New List(Of markerRow)
    
    For Each dtrow In markerDtable.Rows 
        Dim mr = New markerRow() ' create a new markerRow for every row '
        mr.MarkerName = dtrow("MarkerName")
        mr.CameraID = dtrow("CameraID")
        mr.HostAddress = dtrow("HostAddress")
        aList.Add(mr)            ' add the new markerRow to the list '
    Next
    
    For Each elem In aList
        listbox.Items.Add(elem.MarkerName)
    Next
    

    【讨论】:

    • 太棒了!谢谢!由于我在上一个链接上的问题,我现在真的在努力工作。 :)
    猜你喜欢
    • 2023-04-03
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多