Mengenvorgänge

Aktualisiert: November 2007

Mengenvorgänge in LINQ verweisen auf Abfragevorgänge, die ein Resultset erzielen, das auf der Anwesenheit oder Abwesenheit gleichwertiger Elemente innerhalb der gleichen oder in separaten Auflistungen (oder Sets) basiert.

Die Standardabfrageoperator-Methoden, die Mengenvorgänge ausführen, werden im folgenden Abschnitt aufgelistet.

Methoden

Methodenname

Beschreibung

C#-Abfrageausdruckssyntax

Visual Basic-Abfrageausdruckssyntax

Weitere Informationen

Distinct

Entfernt doppelte Werte aus einer Auflistung.

Nicht zutreffend.

Distinct

Enumerable.Distinct

Queryable.Distinct

Except

Gibt die Unterschiedsmenge, d. h. die Elemente einer Auflistung, die nicht in einer zweiten Auflistung erscheinen, zurück.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.Except

Queryable.Except

Intersect

Gibt die Schnittmenge, d. h. die Elemente, die in jeder der zwei Auflistungen erscheinen, zurück.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.Intersect

Queryable.Intersect

Union

Gibt die Vereinigungsmenge, d. h. einzelne Elemente, die in jeder der zwei Auflistungen erscheinen, zurück.

Nicht zutreffend.

Nicht zutreffend.

Enumerable.Union

Queryable.Union

Vergleich von Mengenvorgängen

Distinct

Die folgende Abbildung stellt das Verhalten der Enumerable.Distinct-Methode für eine Sequenz von Zeichen dar. Die zurückgegebene Sequenz enthält die eindeutigen Elemente der Eingabesequenz.

Grafische Darstellung des Verhaltens von Distinct()

Except

Die folgende Abbildung stellt das Verhalten von Enumerable.Except dar. Die zurückgegebene Sequenz enthält nur die Elemente der ersten Eingabesequenz, die nicht in der zweiten Eingabesequenz auftreten.

Grafische Darstellung der Aktion Except().

Intersect

Die folgende Abbildung beschreibt das Verhalten von Enumerable.Intersect. Die zurückgegebene Sequenz enthält die Elemente, die beiden Eingabesequenzen gemeinsam sind.

Grafische Darstellung der Schnittmenge von zwei Sequenzen

Union

Die folgende Abbildung stellt einen Union-Vorgang zweier Sequenzen von Zeichen dar. Die zurückgegebene Sequenz enthält die eindeutigen Elemente beider Eingabesequenzen.

Grafische Darstellung der Verbindung von zwei Sequenzen.

Beispiele von Abfrageausdruckssyntax

Im folgenden Beispiel wird die Distinct-Klausel (nur verfügbar in Visual Basic) in einer LINQ-Abfrage verwendet, um die eindeutigen Zahlen aus einer Liste von ganzen Zahlen zurückzugeben.

Dim classGrades As New System.Collections.Generic.List(Of Integer)(New Integer() {63, 68, 71, 75, 68, 92, 75})

Dim distinctQuery = From grade In classGrades _
                    Select grade Distinct

Dim sb As New System.Text.StringBuilder("The distinct grades are: ")
For Each number As Integer In distinctQuery
    sb.Append(number & " ")
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' The distinct grades are: 63 68 71 75 92 

Weitere Informationen zu Mengenvorgängen

Siehe auch

Konzepte

Übersicht über Standardabfrageoperatoren

Referenz

Distinct-Klausel (Visual Basic)

System.Linq