如果项目存在,我想检查列表框中的每个项目,然后将其添加到listbox3
for each item in listbox2.items
if listbox1.items.contains (item) then
listbox3.item.add (item)
end if
next
但如果有方法可以立即搜索列表框中的项目列表,那么它会非常慢吗?
答案 0 :(得分:1)
您可以使用相交方法获取它们都包含的所有项目。 http://msdn.microsoft.com/en-us/library/bb460136.aspx
它看起来像。以下代码未经测试。
For Each item in listbox2.items.Intersect(listbox1.items)
listbox3.item.add (item)
Next
编辑:所以看了之后,似乎项目是一个不包含相交的objectcollection。为了解决这个问题,你可以试试。
For Each item in listbox2.items.Cast(Of Enumerable).Intersect(listbox1.items.Cast(Of Enumerable))
listbox3.item.add (item)
Next
不确定会有多快
答案 1 :(得分:0)
除非每个Listbox的项目集合都很大,否则我认为这种方法没有任何问题(除了次要的编码错误)。
答案 2 :(得分:0)
我创建了一个包含90,000个字符串的列表,这可以立即生效:
ListBox3.DataSource = ListBox1.Items.Cast(Of IEnumerable).Intersect(ListBox2.Items.Cast(Of IEnumerable)).ToList