我有3個list列出使用linq比較列表<String>?
ListMaster contains {1,2,3,4,....} ..getting populated from DB
List1 contains {1,3,4}
List2 contains {1,3,95}
如何使用LINQ
我有3個list列出使用linq比較列表<String>?
ListMaster contains {1,2,3,4,....} ..getting populated from DB
List1 contains {1,3,4}
List2 contains {1,3,95}
如何使用LINQ
var inMaster = List1.Intersect(ListMaster);
,或兩者兼有列表檢查哪些列表項出現在主列表:
var inMaster = List1.Intersect(List2).Intersect(ListMaster);
檢查,如果任何項目from list1,list2存在於主文件中
var existInMaster = inMaster.Any();
您可以使用Enumerable.Intersect
:
var inMaster = ListMaster.Intersect(List1.Concat(List2));
如果你想知道哪些是List1
哪些不是處於主列表,使用Except
:
var newInList1 = List1.Except(ListMaster);
和List2
:
var newInList2 = List2.Except(ListMaster);
我可以使用名單。所有檢查列表的所有項目中的另一個列表字符串
所以,你要知道,如果一個列表中的所有項目都在另一個列表的 名單。然後使用Except
+ Any
更有效率(如果列表很大),因爲Intersect
和Except
在內部使用集合,而All
循環所有元素。
因此,例如,主列表是否包含所有字符串List1
和List2
?
bool allInMaster = !List1.Concat(List2).Except(ListMaster).Any();
您可以使用Enumerable.Intersect
方法;
通過使用默認的 相等比較器來比較值,生成兩個序列的集交集。
var inMaster1 = List1.Intersect(ListMaster);
var inMaster2 = List2.Intersect(ListMaster);
這裏是一個DEMO
。
我可以使用list.all來檢查另一個列表中的所有項目列表中的字符串列表 –
Enumerable.All的效率遠低於使用Except + Any的效率。 –