vb.net 从列表框中删除另一个列表框中的项目
vb.net removing items from listbox that are in another listbox
我有两个列表框,一个包含批准的项目列表,用于循环遍历 listbox1 项目以查看其中的项目是否包含批准项目中的任何项目(例如“.txt”)
如果该项目不包含已批准的项目,则会将其删除。
问题是当我添加第二个批准的项目时,例如“.pdf”,由于循环,所有“.txt”文件也从列表中删除。
如果有任何解决此问题的想法,我将不胜感激,我想保留列表框中所有已批准的项目!谢谢
For Each item As Object In Me.lstApprovedItems.Items
For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
If Not ListBox1.Items(i).Contains(item) Then
ListBox1.Items.RemoveAt(i)
End If
Next
嗯,是的,如果 'item' 是“.pdf”,那么 ListBox1.Items(i) 不包含 'item' 如果 ListBox1.Items(i) 是“ 。文本文件”。而不是缓慢低效的嵌套 For 循环,而是尝试使用一些 LINQ。像这样的怎么样?
Dim list1 as list(of string) = (From Item in Listbox1.Items Select Item Where lstApprovedItems.items.Contains(Item)).tolist()
我在 Contains 部分的语法可能有点不对,但你可以看到我要去哪里。
然后将为您提供当前在 Listbox1.items 中的所有项目的列表,这些项目也在 lstApprovedItems.items 中。然后您可以重新绑定您的 listbox1 以使用它。
我有两个列表框,一个包含批准的项目列表,用于循环遍历 listbox1 项目以查看其中的项目是否包含批准项目中的任何项目(例如“.txt”)
如果该项目不包含已批准的项目,则会将其删除。 问题是当我添加第二个批准的项目时,例如“.pdf”,由于循环,所有“.txt”文件也从列表中删除。
如果有任何解决此问题的想法,我将不胜感激,我想保留列表框中所有已批准的项目!谢谢
For Each item As Object In Me.lstApprovedItems.Items
For i As Integer = ListBox1.Items.Count - 1 To 0 Step -1
If Not ListBox1.Items(i).Contains(item) Then
ListBox1.Items.RemoveAt(i)
End If
Next
嗯,是的,如果 'item' 是“.pdf”,那么 ListBox1.Items(i) 不包含 'item' 如果 ListBox1.Items(i) 是“ 。文本文件”。而不是缓慢低效的嵌套 For 循环,而是尝试使用一些 LINQ。像这样的怎么样?
Dim list1 as list(of string) = (From Item in Listbox1.Items Select Item Where lstApprovedItems.items.Contains(Item)).tolist()
我在 Contains 部分的语法可能有点不对,但你可以看到我要去哪里。
然后将为您提供当前在 Listbox1.items 中的所有项目的列表,这些项目也在 lstApprovedItems.items 中。然后您可以重新绑定您的 listbox1 以使用它。