Freigeben über


HashSet- und LINQ-Mengenoperationen

In diesem Thema werden HashSet<T>-Operationen und LINQ-Mengenoperationen (Language-Integrated Query, sprachenintegrierte Abfragen) miteinander verglichen.

LINQ-Mengenoperationen

LINQ bietet jeder Datenquelle, die die IEnumerable-Schnittstelle oder die IQueryable-Schnittstelle implementiert, Zugriff auf bestimmte Mengenoperationen. Hierzu zählen auch Arrays und Auflistungen.

Folgende Mengenoperationen werden von LINQ bereitgestellt:

  • Distinct

  • Union

  • Intersect

  • Except

Weitere Informationen zu LINQ finden Sie unter LINQ (Language-Integrated Query, sprachintegrierte Abfrage) und Paralleles LINQ (PLINQ). Weitere Informationen über LINQ-Mengenoperationen finden Sie unter Mengenvorgänge.

Verwendung von HashSet<T>

Der Hauptunterschied zwischen LINQ-Mengenoperationen und HashSet<T>-Operationen besteht darin, dass LINQ-Mengenoperationen immer eine neue IEnumerable<T>-Auflistung zurückgeben, während die entsprechenden HashSet<T>-Methoden die aktuelle Auflistung ändern. HashSet<T> bietet mehr und stabilere Mengenoperationen. So bietet HashSet<T> beispielsweise Vergleiche wie IsSubsetOf und IsSupersetOf.

In der Regel reicht es aus, LINQ-Mengenoperationen für eine beliebige IEnumerable<T>-Auflistung oder ein Array zu verwenden, wenn Sie eine neue Menge erstellen möchten oder wenn die Anwendung nur auf die bereitgestellten Mengenoperationen zugreifen muss. Wenn die Anwendung jedoch Zugriff auf weitere Mengenoperationen benötigt oder das Erstellen einer neuen Auflistung nicht erwünscht oder nicht notwendig ist, verwenden Sie die HashSet<T>-Klasse.

HashSet<T>- und LINQ-Mengenoperationen

In der folgenden Tabelle sind die HashSet<T>-Operationen und ihre entsprechenden LINQ-Mengenoperationen aufgeführt.

HashSet(Of T)-Operation

LINQ-Entsprechung

UnionWith

Union

IntersectWith

Intersect

ExceptWith

Except

Nicht bereitgestellt

Distinct

SymmetricExceptWith

Nicht bereitgestellt

Overlaps

Nicht bereitgestellt

IsSubsetOf

Nicht bereitgestellt

IsProperSubsetOf

Nicht bereitgestellt

IsSupersetOf

Nicht bereitgestellt

IsProperSupersetOf

Nicht bereitgestellt

SetEquals

Nicht bereitgestellt

Siehe auch

Referenz

HashSet<T>

Konzepte

HashSet-Auflistungstyp

Paralleles LINQ (PLINQ)

Mengenvorgänge

Weitere Ressourcen

LINQ (Language-Integrated Query, sprachintegrierte Abfrage)

Häufig verwendete Auflistungstypen