Freigeben über


Mengenvorgänge

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``1

Queryable.Distinct``1

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``1

Queryable.Except``1

Intersect

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

Nicht zutreffend.

Nicht zutreffend.

Enumerable.Intersect``1

Queryable.Intersect``1

Union

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

Nicht zutreffend.

Nicht zutreffend.

Enumerable.Union``1

Queryable.Union``1

Vergleich von Mengenvorgängen

Distinct

Die folgende Abbildung stellt das Verhalten der Enumerable.Distinct``1-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``1 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``1. 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 = New System.Collections.Generic.List(Of Integer) From {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 

Siehe auch

Aufgaben

Gewusst wie: Verbinden und Vergleichen von Zeichenfolgenauflistungen (LINQ)

Gewusst wie: Suchen der festgelegten Differenz zwischen zwei Listen (LINQ)

Referenz

Distinct-Klausel (Visual Basic)

System.Linq

Konzepte

Übersicht über Standardabfrageoperatoren