如何使用Lambda表达式对多个列表进行交集运算?

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表达式如何实现?
5个回答

5
您可以使用Enumerable.Intersect
var commonItems = list1.Intersect(list2).Intersect(list3).Intersect(list4);

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

谢谢@GregRos,我已经解决了交集问题,但是准备为任意数量的列表进行一些硬编码。这正是我缺少的部分。 - Fjarskiptagervitungl

1
list1.Intersect(list2).Intersect(list3).Intersect(list4);

0

您可以使用 Enumerable.Intersect,将 List1 与自身以及其结果与 List3 等交集。

    List1.Intersect(List2).Intersect(List3).Intersect(List4)

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接