我正在进行一项任务,从文件中读取记录,存储在结构数组中,然后输出到列表框。根据赋值指令,结构数组被指定为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
答案 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)
。这样你就可以添加有效数据,而不是超额分配。