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.
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.
Przecinają się
Poniższa ilustracja przedstawia zachowanie klasy Enumerable.Intersect. Zwrócona sekwencja zawiera elementy wspólne dla obu sekwencji wejściowych.
Unia
Poniższa ilustracja przedstawia operację unii na dwóch sekwencjach znaków. Zwrócona sekwencja zawiera unikatowe elementy z obu sekwencji wejściowych.
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