Share via


HashSet- und LINQ-Mengenoperationen

Aktualisiert: November 2007

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 über LINQ finden Sie unter Sprachintegrierte Abfrage (Language-Integrated Query, LINQ). Weitere Informationen über LINQ-Mengenoperationen finden Sie unter Mengenvorgänge.

Verwendung von HashSet&lt;T&gt;

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&lt;T&gt;- 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

Konzepte

HashSet-Auflistungstyp

Mengenvorgänge

Referenz

HashSet<T>

Weitere Ressourcen

Sprachintegrierte Abfrage (Language-Integrated Query, LINQ)

Häufig verwendete Auflistungstypen