我在ASP.NET VB.NET Web应用程序中有5到10个通用列表。我想写一个方法将它们全部传递进去,并只返回它们共有的元素。
我正在寻找一些如何以最简单,最干净的方式实现这一目标的想法。
答案 0 :(得分:0)
要查找列表中的匹配项,请尝试以下操作:
Module Module1
Sub Main()
Dim l1 As New List(Of Integer)
Dim l2 As New List(Of Integer)
l1.Add(2)
l1.Add(5)
l2.Add(9)
l2.Add(2)
Dim k = l1.Intersect(l2).ToList ' Will have one item, the number 2.
End Sub
End Module
使用Intersect
扩展程序来帮助您。
答案 1 :(得分:0)
使用LINQ:
public static IEnumerable<T> IntersectMany(IEnumerable<IEnumerable<T>> lists) {
IEnumerable<T> result;
foreach (IEnumerable<T> list in lists)
result = (result == null ? list : result.Intersect(list));
return lists;
}