4

私は3つのリストリストを持っています

ListMaster contains {1,2,3,4,....} ..getting populated from DB
List1 contains {1,3,4}
List2 contains {1,3,95}

linqを使用してマスターリストに存在するリストアイテムを確認する方法

4

3 に答える 3

5
var inMaster = List1.Intersect(ListMaster);

または両方のリストの場合:

var inMaster = List1.Intersect(List2).Intersect(ListMaster);

list1、list2 のアイテムがマスターに存在するかどうかを確認します

var existInMaster = inMaster.Any();
于 2013-05-31T08:16:28.623 に答える
3

使用できます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(リストが大きい場合) はるかに効率的になります。IntersectExceptAll

たとえば、master-list にはList1とのすべての文字列が含まれていますList2か?

bool allInMaster = !List1.Concat(List2).Except(ListMaster).Any();
于 2013-05-31T08:17:13.820 に答える
2

Enumerable.Intersect次のような方法を使用できます。

デフォルトの等値比較子を使用して値を比較することにより、2 つのシーケンスの積集合を生成します。

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

ここに がありDEMOます。

于 2013-05-31T08:17:31.603 に答える