2013-05-31 97 views

回答

5
var inMaster = List1.Intersect(ListMaster); 

,或兩者兼有列表檢查哪些列表項出現在主列表:

var inMaster = List1.Intersect(List2).Intersect(ListMaster); 

檢查,如果任何項目from list1,list2存在於主文件中

var existInMaster = inMaster.Any(); 
3

您可以使用Enumerable.Intersect

var inMaster = ListMaster.Intersect(List1.Concat(List2)); 

如果你想知道哪些是List1哪些不是處於主列表,使用Except

var newInList1 = List1.Except(ListMaster); 

List2

var newInList2 = List2.Except(ListMaster); 

我可以使用名單。所有檢查列表的所有項目中的另一個列表字符串

所以,你要知道,如果一個列表中的所有項目都在另一個列表的 名單。然後使用Except + Any更有效率(如果列表很大),因爲IntersectExcept在內部使用集合,而All循環所有元素。

因此,例如,主列表是否包含所有字符串List1List2

bool allInMaster = !List1.Concat(List2).Except(ListMaster).Any(); 
+0

我可以使用list.all來檢查另一個列表中的所有項目列表中的字符串列表 –

+0

Enumerable.All的效率遠低於使用Except + Any的效率。 –

2

您可以使用Enumerable.Intersect方法;

通過使用默認的 相等比較器來比較值,生成兩個序列的集交集。

var inMaster1 = List1.Intersect(ListMaster); 
var inMaster2 = List2.Intersect(ListMaster); 

這裏是一個DEMO