我正在使用vb.net中的列表框,并尝试通过单击按钮从列表框中删除不包含特定文本的所有项目。这是我的代码:
Dim i As Integer
For i = 0 To ListBoxPrePublish.Items.Count - 1
If InStr(ListBoxPrePublish.Items(i), "-8-") > 0 = False Then
ListBoxPrePublish.Items.RemoveAt(i)
Exit For
End If
Next
这一次只能删除1个项目。如何调整此项以立即删除所有不包含“-8-”的项目?
编辑:如果有人问,列表框项目列表会变得越来越大,所以我添加了一个排序功能,以便用户可以根据需要调整选项。这就是为什么我在添加到列表框之前没有过滤任何东西答案 0 :(得分:1)
不,我不知道任何RemoveRange
类型的功能。并且建议您在删除项目时需要向后遍历列表框Items
集合,否则您将获得索引异常,因为一旦删除了某些内容,它将会破坏迭代器中所有剩余项目的索引值
答案 1 :(得分:1)
以下是我在评论中提到的后向循环的完整代码 - 它应该可以工作:
For i as Integer = ListBoxPrePublish.Items.Count - 1 To 0 Step -1
If Not ListBoxPrePublish.Items(i).Contains("-8-") Then
ListBoxPrePublish.Items.RemoveAt(i)
End If
Next