项目列表仅添加一个新项目

时间:2016-04-09 07:13:07

标签: vb.net

以下是我试图用来将数据从数据库导入对象列表(来自类)的代码。但是,它只在循环结束时获取列表中的一个项目。我曾经将数据放入ListBox而不是动态的对象列表,这些都有效,因此正在检索数据。

Public Class AnItem
    Public Item As String
    Public TheType As String
End Class

Public MyLists As List(Of AnItem) 

Private Sub AddToList()
    Dim i as integer
    Dim fs as AnItem

    For i = 0 To numberOfDataBaseitems
        Dim fs as new AnItem
        'fs.item = 'item 1'
        'fs.type = 'box'
        fs = getData(i)

        'ONLY one ITEM IS ADDED!!!!!!??????
        MyLists = New List(Of AnItem)  
        MyLists.Add(fs)
    Next I
End Sub

2 个答案:

答案 0 :(得分:1)

问题是循环中的这一行:

MyLists = New List(Of AnItem)  

每次循环都会创建一个新的(空)列表。 1项添加到列表中。下次循环时,会创建另一个新的列表对象。

只需将此行移至此行之前:

For i = 0 To numberOfDataBaseitems

答案 1 :(得分:1)

更改此行代码

Public MyLists As List(Of AnItem) 

Public MyLists As New List(Of AnItem) 

并删除此行代码

 MyLists = New List(Of AnItem) 

每次执行最后一行代码时,列表都被声明为新的空列表。我猜你添加了这个,因为你得到了一个N​​ullReference异常。您获得例外的原因是因为我在答案开头的MyLists声明中没有包含New关键字