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
Libérer: 2024-12-30 13:52:14
original
322 Les gens l'ont consulté

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();
}
Copier après la connexion

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();
    }
}
Copier après la connexion

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
Copier après la connexion

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal