4 votes

Comparer à list<String> en utilisant linq ?

J'ai 3 listes

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

Comment vérifier quels éléments de la liste sont présents dans la liste principale à l'aide de linq ?

5voto

Raphaël Althaus Points 38619
var inMaster = List1.Intersect(ListMaster);

ou pour les deux listes :

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

vérifier si un élément de la liste 1 ou de la liste 2 existe dans le fichier principal

var existInMaster = inMaster.Any();

3voto

Tim Schmelter Points 163781

Vous pouvez utiliser Enumerable.Intersect :

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

Si vous voulez savoir lesquels sont en List1 qui ne figurent pas dans la liste principale, utilisez la fonction Except :

var newInList1 = List1.Except(ListMaster);

et pour List2 :

var newInList2 = List2.Except(ListMaster);

Puis-je utiliser une liste .all pour vérifier tous les éléments d'une liste dans une autre liste ? liste de chaînes de caractères

Vous souhaitez donc savoir si tous les éléments d'une liste se trouvent dans une autre liste. Pour cela, il faut utiliser Except + Any est beaucoup plus efficace (si les listes sont grandes) parce que Intersect y Except utilisent des ensembles en interne alors que All boucle tous les éléments.

Ainsi, par exemple, la liste principale contient-elle toutes les chaînes de caractères du type List1 y List2 ?

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

2voto

Soner Gönül Points 35739

Vous pouvez utiliser Enumerable.Intersect comme la méthode ;

P pour comparer les valeurs.

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

Voici un DEMO .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X