私は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 のアイテムがマスターに存在するかどうかを確認します
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
(リストが大きい場合) はるかに効率的になります。Intersect
Except
All
たとえば、master-list にはList1
とのすべての文字列が含まれていますList2
か?
bool allInMaster = !List1.Concat(List2).Except(ListMaster).Any();
Enumerable.Intersect
次のような方法を使用できます。
デフォルトの等値比較子を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。
var inMaster1 = List1.Intersect(ListMaster);
var inMaster2 = List2.Intersect(ListMaster);
ここに がありDEMO
ます。