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

.NET offre-t-il un moyen intégré de vérifier si une liste contient tous les éléments d'une autre ?

Susan Sarandon
Libérer: 2025-01-01 01:14:18
original
500 Les gens l'ont consulté

Does .NET Offer a Built-in Way to Check if One List Contains All Elements of Another?

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

Problème :

Vous disposez d'une méthode (ContainsAllItems) qui détermine si List a contient tous les éléments de List b. Vous vous demandez si cette fonctionnalité est déjà intégrée à .NET, ce qui pourrait potentiellement dupliquer vos efforts.

Réponse :

Oui, dans .NET 3.5 et versions ultérieures, vous pouvez utiliser le suivant méthode :

public static class LinqExtras
{
    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)
    {
        return !b.Except(a).Any();
    }
}
Copier après la connexion

Utilisation :

List<int> a = new List<int>() { 1, 2, 3, 4 };
List<int> b = new List<int>() { 2, 3 };

bool result = a.ContainsAllItems(b); // True
Copier après la connexion

Cette méthode effectue une différence définie entre b et a (b.Except(a)), qui renvoie le éléments de b qui ne sont pas dans a. La méthode Any() est ensuite utilisée pour vérifier s'il y a des éléments dans la différence définie, et le résultat est inversé pour déterminer si a contient tous les éléments de b.

Remarque :

La méthode ContainsAllItems originale est également une solution valable mais est légèrement moins efficace que l'approche utilisant LINQ. La version LINQ profite d'une évaluation paresseuse, effectuant potentiellement moins de travail si les listes contiennent un grand nombre d'éléments.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal