如何在通用列表中查找匹配值

时间:2010-05-25 19:50:40

标签: asp.net

我在ASP.NET VB.NET Web应用程序中有5到10个通用列表。我想写一个方法将它们全部传递进去,并只返回它们共有的元素。

我正在寻找一些如何以最简单,最干净的方式实现这一目标的想法。

2 个答案:

答案 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;
}