这是针对VS2015社区中的VB.NET 4.5项目. 我试图从列表框中删除某些选定的项目,但仅限于所选项目符合条件.我找到了很多关于如何删除所选项目的示例.但是没有任何东西适用于嵌套在循环
我试图从列表框中删除某些选定的项目,但仅限于所选项目符合条件.我找到了很多关于如何删除所选项目的示例.但是没有任何东西适用于嵌套在循环中通过所选项目的条件(至少,我不能让这些例子与我正在尝试做的事情一起工作……)
这是我的代码:
Dim somecondition As Boolean = True Dim folder As String For i As Integer = 0 To lstBoxFoldersBackingUp.SelectedItems.Count - 1 If somecondition = True Then folder = lstBoxFoldersBackingUp.SelectedItems.Item(i) Console.WriteLine("folder: " & folder) lstBoxFoldersBackingUp.SelectedItems.Remove(lstBoxFoldersBackingUp.SelectedItems.Item(i)) End If Next
控制台输出正确显示当前迭代项的文本,但我无法使Remove()工作.由于代码现在,我得到控制台输出,但列表框不会改变.
删除项目会更改项目的索引位置.有很多方法,但是从你的代码中,尝试向后迭代以避免这个问题.您还应该从Items集合中删除该项目,而不是SelectedItems集合:For i As Integer = lstBoxFoldersBackingUp.SelectedItems.Count - 1 To 0 Step -1 If somecondition = True Then folder = lstBoxFoldersBackingUp.SelectedItems.Item(i) Console.WriteLine("folder: " & folder) lstBoxFoldersBackingUp.Items.Remove(lstBoxFoldersBackingUp.SelectedItems(i)) End If Next