整數在vb.net應用我有一組當前存儲在多個ArrayList的整數(但如果需要的話,這可能是不同的東西)如何找到像在多個列表
AL1 = {1,2,3 ,6,7,9} AL2 = {2,3,4,9} AL3 = {2,3,19}
我想獲得集合{2,3}
我想過使用LINQ加入列表,但Arraylist的數量可以改變。我打開任何想法。我知道我總是可以遍歷所有內容並檢查一個整數是否存在並跟蹤它,但我認爲可能有一種更簡單的方法?
整數在vb.net應用我有一組當前存儲在多個ArrayList的整數(但如果需要的話,這可能是不同的東西)如何找到像在多個列表
AL1 = {1,2,3 ,6,7,9} AL2 = {2,3,4,9} AL3 = {2,3,19}
我想獲得集合{2,3}
我想過使用LINQ加入列表,但Arraylist的數量可以改變。我打開任何想法。我知道我總是可以遍歷所有內容並檢查一個整數是否存在並跟蹤它,但我認爲可能有一種更簡單的方法?
可以使用Enumerable.Intersect
方法爲此。並將您的ArrayList
更改爲List(Of T)
。這使得更容易使用LINQ方法。
Dim set = al1.Intersect(al2).Intersect(al3)
如果你已經有代碼,讓兩個列表的普通物品,很容易延伸到任意數量的列表:
熙漢斯。 't Wordt tijd dat je jee LINQ gaat leren,je antwoord is veel te generiek ;-) Trouwens,ik miste jullie dit jaar op de DevDays。 – Steven 2010-05-27 13:18:20
Hoi Steven,我已經表達了generiek gehouden,het klonk nogal als huiswerk。恩inderdaad,我們倉頡niet。 Volgende更加親切的動物。 – 2010-05-28 06:10:33
爲了增加史蒂芬的回答是:如果你不能改變你的ArrayList
對象List(Of Integer)
對象,你仍然可以做到這一點:
Dim set = al1.OfType(Of Integer)() _
.Intersect(al2.OfType(Of Integer)()) _
.Intersect(al3.OfType(Of Integer)())
這正是我希望找到的,謝謝! – 2010-05-27 13:27:03