3

我有几个清单。他们的人数不清楚。

例如(对于 4 个列表):

List1   List2    List3     List4 
-----   -----    -----     -----
  1       2        3         4
  2       4        8         3   
  3       8        4         5   
  4       11       6         1    
  5       3        7         7    
  6       9        11        9

我想找到常见的项目。它可以在 MSSQL 中使用 T-SQL。

结果将是这样的:

ResultList : (3, 4)

Lambda 表达式是如何完成的?

4

5 回答 5

5

您可以使用Enumerable.Intersect

var commonItems = list1.Intersect(list2).Intersect(list3).Intersect(list4);
于 2012-06-28T20:28:36.010 回答
2

对于任意数量的列表,您可以执行以下操作:

var List<List<int>> lists; //This contains the lists I assume...
var result = lists.Skip(1).Aggregate(lists.First(), (accum, cur) => accum.Intersect(cur));
于 2012-06-28T20:41:45.710 回答
1
list1.Intersect(list2).Intersect(list3).Intersect(list4);
于 2012-06-28T20:28:51.877 回答
0

你在找Intersect吗?

于 2012-06-28T20:28:39.987 回答
0

您可以使用Enumerable.Intersect并将 List1 与 List1 相交,并将其结果与 List3 相交,依此类推。

    List1.Intersect(List2).Intersect(List3).Intersect(List4)
于 2012-06-28T20:29:01.623 回答