Heim > Backend-Entwicklung > C++ > Bietet .NET eine integrierte Funktion zum Überprüfen, ob eine Liste alle Elemente einer anderen enthält?

Bietet .NET eine integrierte Funktion zum Überprüfen, ob eine Liste alle Elemente einer anderen enthält?

DDD
Freigeben: 2024-12-30 13:52:14
Original
322 Leute haben es durchsucht

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

Verfügt .NET über eine eingebaute Funktion, um zu überprüfen, ob Liste a alle Elemente in Liste b enthält?

Der Zweck dieser Frage besteht darin Stellen Sie fest, ob .NET eine integrierte Funktionalität bereitstellt, um festzustellen, ob eine Liste alle Elemente einer anderen Liste enthält.

Der bereitgestellte Beispielcode versucht, dies zu erfüllen Zu diesem Zweck wird die zweite Liste durchlaufen und überprüft, ob jedes Element in der ersten Liste vorhanden ist. Dieser Ansatz funktioniert, aber man fragt sich, ob eine solche Funktionalität bereits in .NET vorhanden ist.

Antwort:

Für .NET Version 3.5 und höher ist eine solche Funktion tatsächlich verfügbar :

public static bool ContainsAllItems<T>(List<T> a, List<T> b)
{
    return !b.Except(a).Any();
}
Nach dem Login kopieren

Dieser Code vergleicht die Elemente in Liste b mit denen in Liste a und gibt nur dann „true“ zurück, wenn alle Elemente in b auch in vorhanden sind a.

Alternative Implementierung:

Eine konventionellere Implementierung würde das Deklarieren der Methode als generisch und das Akzeptieren eines IEnumerable beinhalten. anstelle eines bestimmten Typs (Liste):

public static class LinqExtras
{
    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)
    {
        return !b.Except(a).Any();
    }
}
Nach dem Login kopieren

Mit diesem Ansatz können Sie leicht überprüfen, ob eine Liste alle Elemente einer anderen enthält, indem Sie Folgendes verwenden:

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
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBietet .NET eine integrierte Funktion zum Überprüfen, ob eine Liste alle Elemente einer anderen enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage