簡體   English   中英

與列表比較 <String> 使用linq?

[英]Compare to list<String> using linq?

我有3個列表列表

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

檢查list1,list2中的任何項是否存在於master中

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

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

因此,您想知道一個列表中的所有項目是否都在另一個列表中。 然后使用Except + Any會更有效(如果列表很大),因為IntersectExcept在內部使用集合而All循環所有元素。

那么例如,master-list是否包含List1List2所有字符串?

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

你可以使用Enumerable.Intersect方法;

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

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

這是一個DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM