.NET a-t-il une fonction intégrée pour vérifier si la liste a contient tous les éléments de la liste b ?
Le but de cette question est de déterminer si .NET fournit une fonctionnalité intégrée pour vérifier si une liste contient tous les éléments d'une autre liste.
L'exemple de code fourni tente de remplir cette tâche. objectif en parcourant la deuxième liste et en vérifiant si chaque élément est présent dans la première liste. Cette approche fonctionne, mais on se demande si une telle fonctionnalité existe déjà au sein de .NET.
Réponse :
Pour .NET version 3.5 et supérieure, une telle fonction est en effet disponible :
public static bool ContainsAllItems<T>(List<T> a, List<T> b) { return !b.Except(a).Any(); }
Ce code compare les éléments de la liste b avec ceux de la liste a, renvoyant vrai uniquement si tous les éléments de b sont également présents dans a.
Implémentation alternative :
Une implémentation plus conventionnelle impliquerait de déclarer la méthode comme générique et d'accepter un IEnumerable
public static class LinqExtras { public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b) { return !b.Except(a).Any(); } }
En utilisant cette approche, vous pouvez facilement vérifier si une liste contient tous les éléments d'une autre en utilisant :
IEnumerable<int> a = new List<int> { 1, 2, 3, 4 }; IEnumerable<int> b = new List<int> { 2, 4, 6, 8 }; bool containsAll = a.ContainsAllItems(b); // False
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!