比较list使用linq
本文关键字:使用 linq String list 比较 | 更新日期: 2023-09-27 18:16:07
我有3个list
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);
检查master
中是否存在list1, list2中的itemvar 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);
我可以使用list .all来检查另一个列表中的所有项吗字符串
的列表
你想知道一个列表的所有元素是否都在另一个列表中。然后使用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