[英]Compare to list<String> using linq?
I have 3 list List 我有3个列表列表
ListMaster contains {1,2,3,4,....} ..getting populated from DB
List1 contains {1,3,4}
List2 contains {1,3,95}
how to check Which list items are present in master list using linq 如何使用linq检查主列表中存在哪些列表项
var inMaster = List1.Intersect(ListMaster);
or for both list : 或两个清单:
var inMaster = List1.Intersect(List2).Intersect(ListMaster);
check if any item from list1, list2 exist in master 检查list1,list2中的任何项是否存在于master中
var existInMaster = inMaster.Any();
You can use Enumerable.Intersect
: 您可以使用
Enumerable.Intersect
:
var inMaster = ListMaster.Intersect(List1.Concat(List2));
If you want to know which are in List1
which are not in the master-list, use Except
: 如果您想知道
List1
哪些不在主列表中,请使用Except
:
var newInList1 = List1.Except(ListMaster);
and for List2
: 对于
List2
:
var newInList2 = List2.Except(ListMaster);
Can i use a list .all to check all item of a list in another list for list of string
我可以使用列表.all来检查另一个列表中列表的所有项目以获取字符串列表
So you want to know if all items of one list are in another list. 因此,您想知道一个列表中的所有项目是否都在另一个列表中。 Then using
Except
+ Any
is much more efficient(if the lists are large) because Intersect
and Except
are using sets internally whereas All
loops all elements. 然后使用
Except
+ Any
会更有效(如果列表很大),因为Intersect
和Except
在内部使用集合而All
循环所有元素。
So for example, does the master-list contain all strings of List1
and List2
? 那么例如,master-list是否包含
List1
和List2
所有字符串?
bool allInMaster = !List1.Concat(List2).Except(ListMaster).Any();
You can use Enumerable.Intersect
method like; 你可以使用
Enumerable.Intersect
方法;
Produces the set intersection of two sequences by using the default equality comparer to compare values.
通过使用默认的相等比较器来比较值,生成两个序列的集合交集。
var inMaster1 = List1.Intersect(ListMaster);
var inMaster2 = List2.Intersect(ListMaster);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.