2010-05-25 34 views
1

我在ASP.NET VB.NET Web应用程序中有5到10个通用列表。我想写一个方法将它们全部传入,并返回它们都有的共同元素。如何在通用列表中找到匹配值

我正在寻找一些想法如何实现这个最简单和最干净的方式。

+0

你能否澄清一下,你的意思是ASP.Net列表框控件,还是你的意思是对象列表清单一样? – 2010-05-25 20:02:23

回答

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扩展方法来帮助你。

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