Udostępnij za pośrednictwem


Set Operations (Visual Basic)

Ustawianie operacji w LINQ odnosi się do operacji zapytań, które generują zestaw wyników oparty na obecności lub braku równoważnych elementów w ramach tych samych lub oddzielnych kolekcji (lub zestawów).

Standardowe metody operatorów zapytań, które wykonują operacje zestawu, są wymienione w poniższej sekcji.

Metody

Nazwa metody opis Składnia wyrażeń zapytań języka Visual Basic Więcej informacji
Distinct lub DistinctBy Usuwa zduplikowane wartości z kolekcji. Distinct Enumerable.Distinct
Enumerable.DistinctBy
Queryable.Distinct
Queryable.DistinctBy
Z wyjątkiem lub z wyjątkiem Zwraca różnicę zestawu, co oznacza, że elementy jednej kolekcji, które nie są wyświetlane w drugiej kolekcji. Nie dotyczy. Enumerable.Except
Enumerable.ExceptBy
Queryable.Except
Queryable.ExceptBy
Intersect lub IntersectBy Zwraca skrzyżowanie zestawu, co oznacza, że elementy, które pojawiają się w każdej z dwóch kolekcji. Nie dotyczy. Enumerable.Intersect
Enumerable.IntersectBy
Queryable.Intersect
Queryable.IntersectBy
Union lub UnionBy Zwraca unię zestawu, co oznacza unikatowe elementy, które pojawiają się w jednej z dwóch kolekcji. Nie dotyczy. Enumerable.Union
Enumerable.UnionBy
Queryable.Union
Queryable.UnionBy

Porównanie operacji zestawu

Distinct

Poniższa ilustracja przedstawia zachowanie Enumerable.Distinct metody w sekwencji znaków. Zwrócona sekwencja zawiera unikatowe elementy z sekwencji danych wejściowych.

Graphic showing the behavior of Distinct().

Z wyjątkiem

Poniższa ilustracja przedstawia zachowanie klasy Enumerable.Except. Zwrócona sekwencja zawiera tylko elementy z pierwszej sekwencji wejściowej, które nie znajdują się w drugiej sekwencji danych wejściowych.

Graphic showing the action of Except().

Przecinają się

Poniższa ilustracja przedstawia zachowanie klasy Enumerable.Intersect. Zwrócona sekwencja zawiera elementy wspólne dla obu sekwencji wejściowych.

Graphic showing the intersection of two sequences.

Unia

Poniższa ilustracja przedstawia operację unii na dwóch sekwencjach znaków. Zwrócona sekwencja zawiera unikatowe elementy z obu sekwencji wejściowych.

Graphic showing the union of two sequences.

Przykład składni wyrażenia zapytania

W poniższym przykładzie użyto klauzuli Distinct w zapytaniu LINQ w celu zwrócenia unikatowych liczb z listy liczb całkowitych.


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 

Zobacz też