Maison >développement back-end >C++ >.NET offre-t-il une fonction intégrée pour vérifier si une liste contient tous les éléments d'une autre ?

.NET offre-t-il une fonction intégrée pour vérifier si une liste contient tous les éléments d'une autre ?

DDD
DDDoriginal
2024-12-30 13:52:14324parcourir

Does .NET Offer a Built-in Function to Check if One List Contains All Items from Another?

.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 au lieu d'un type spécifique (List) :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn