2016-04-09 3 views
-1

Ниже приведен код, который я пытаюсь использовать для импорта данных из базы данных в список объектов (из класса). Тем не менее, он получает только один элемент в списке, когда цикл завершается. Я использовал для размещения данных в 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 
+0

Если ответ действительно для вас, нажмите на галочку слева от ответа, чтобы вопрос был отмеченный как ответ **, и это гарантирует, что человек, который разместил его, получает репутацию. Приветствия. –

ответ

1

Проблема заключается в том, что эта линия в пределах цикла:

MyLists = New List(Of AnItem) 

создает новый (пустой) список каждый раз вокруг петли. В этот список добавляется 1 элемент. В следующий раз вокруг цикла создается новый новый объект списка.

Просто переместите эту строку перед этой строкой:

For i = 0 To numberOfDataBaseitems 
1

Изменить эту строку кода

Public MyLists As List(Of AnItem) 

в

Public MyLists As New List(Of AnItem) 

и удалить эту строку кода

MyLists = New List(Of AnItem) 

Каждый раз, когда вы выполняете последнюю строку кода, список объявляется как новый пустой список. Я предполагаю, что вы добавили это, потому что вы получали исключение NullReference. Причина, по которой вы получали исключение, заключается в том, что ваша декларация MyLists в начале моего ответа не включала ключевое слово New

Смежные вопросы