Maison >développement back-end >C++ >Comment puis-je vérifier efficacement si une liste contient tous les éléments d'une autre dans .NET ?

Comment puis-je vérifier efficacement si une liste contient tous les éléments d'une autre dans .NET ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-01 07:02:11192parcourir

How Can I Efficiently Check if One List Contains All Elements of Another in .NET?

Approche de .NET pour vérifier le confinement des listes

La tâche à accomplir est de vérifier si une liste contient tous les éléments présents dans une autre liste. Dans .NET, cette fonctionnalité est en effet intégrée pour les versions 3.5 et supérieures.

L'implémentation .NET

Pour .NET 3.5 et versions ultérieures, nous pouvons exploiter le code suivant pour réaliser ce confinement check :

public static class LinqExtras // Or whatever
{
    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)
    {
        return !b.Except(a).Any();
    }
}

Ce code concis utilise la méthode Except pour déterminer tous les éléments de b qui sont absents dans a. En inversant le résultat avec !, nous confirmons effectivement si a contient tous les éléments de b.

Approche conventionnelle

En termes de conventions de codage, il est plus courant de définir une méthode générique, comme on le voit dans le code fourni, plutôt que la classe elle-même étant générique. De plus, l'exigence de List peut être détendu en IEnumerable puisque nous n'avons besoin que d'un moyen d'itérer sur les éléments.

Conclusion

Avec les fonctionnalités intégrées dans .NET 3.5 et versions ultérieures, vous disposez d'un moyen pratique et efficace de vérifier le confinement entre listes. Le code fourni utilise efficacement LINQ pour effectuer cette vérification et adhère aux pratiques de codage courantes.

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