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 ?
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 ?
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();
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 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.