我正在尝试遍历列表框,删除不符合要求的项目。当前处于for循环中时,是否可以减少迭代次数?我试图减少循环中的最大变量,但这似乎不起作用。任何建议将不胜感激。
For x = 0 To total - 1
If lstOut.Items.Item(x).substring(11, 10) <> studentField.sName Then
lstOut.Items.RemoveAt(x)
total = total - 1
End If
Next
答案 0 :(得分:1)
要解决该问题,您可以从最后一个元素开始,然后向下移动(如下面的代码所示) 无需小心删除迭代
For x = lstOut.Items.Count - 1 To 0 Step -1
If lstOut.Items.Item(x).substring(11, 10) <> studentField.sName Then
lstOut.Items.RemoveAt(x)
End If
Next