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 |
|
Except |
Gibt die Unterschiedsmenge, d. h. die Elemente einer Auflistung, die nicht in einer zweiten Auflistung erscheinen, zurück. |
Nicht zutreffend. |
Nicht zutreffend. |
|
Intersect |
Gibt die Schnittmenge, d. h. die Elemente, die in jeder der zwei Auflistungen erscheinen, zurück. |
Nicht zutreffend. |
Nicht zutreffend. |
|
Union |
Gibt die Vereinigungsmenge, d. h. einzelne Elemente, die in jeder der zwei Auflistungen erscheinen, zurück. |
Nicht zutreffend. |
Nicht zutreffend. |
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.
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.
Intersect
Die folgende Abbildung beschreibt das Verhalten von Enumerable.Intersect. Die zurückgegebene Sequenz enthält die Elemente, die beiden Eingabesequenzen gemeinsam sind.
Union
Die folgende Abbildung stellt einen Union-Vorgang zweier Sequenzen von Zeichen dar. Die zurückgegebene Sequenz enthält die eindeutigen Elemente beider Eingabesequenzen.
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)