在VB.net中处理未知大小的数组

时间:2015-11-21 02:30:05

标签: arrays vb.net listbox

我正在进行一项任务,从文件中读取记录,存储在结构数组中,然后输出到列表框。根据赋值指令,结构数组被指定为250个元素的大小。

为了跟踪处理的记录数,我创建了名为totalElements的变量。它计算处理的记录数,因此我的For循环写入列表框的数字很高。这是最好的方法吗?

在我的测试中,我发现如果我处理的记录少于250条,而结构数组的元素都是空的,如果我使用其中任何一个循环,那么在将记录写入列表框时会出现运行时错误。

if (a[i][0])

     For i As Integer = 0 To 249          
     ...write listbox       
     Next 

这是我的完整代码。它有效,我觉得必须有一个更好的方法来做到这一点。在此先感谢您的帮助!

-Brent

     Dim highestSub As Integer = mem.Length - 1 
     For i As Integer = 0 To highestSub 
     ...write listbox 
      Next 

1 个答案:

答案 0 :(得分:1)

在将记录写入列表框之前检查空记录。这假设所有记录都有一个ID。

Private Sub WriteStudentFile()
    For i As Integer = 0 To mem.Length -1
        If Not IsNothing(mem(i).id) then
            StudentsList.Items.Add(mem(i).id.PadLeft(10, "0") & " " & mem(i).lastName & ", " & mem(i).firstName & " " & mem(i).middleInitial)
        End If
    Next
End Sub

虽然如果您可以选择是否使用数组,我会使用通用的List(Of Members)。这样你就可以添加有效数据,而不是超额分配。