Поделиться через


Установка операций (Visual Basic)

Операции с множествами в LINQ ссылаются на операции запроса, которые создают результирующее множество, основанное на присутствии или отсутствии эквивалентных элементов в одной или нескольких коллекциях (или множествах).

Стандартные методы оператора запроса, выполняющие операции набора, перечислены в следующем разделе.

Методы

Имя метода Описание Синтаксис выражения запроса Visual Basic Дополнительная информация
Distinct или DistinctBy Удаляет повторяющиеся значения из коллекции. Distinct Enumerable.Distinct
Enumerable.DistinctBy
Queryable.Distinct
Queryable.DistinctBy
Кроме или за исключением Возвращает разность множеств, то есть элементы одной коллекции, которые не входят во вторую коллекцию. Неприменимо. Enumerable.Except
Enumerable.ExceptBy
Queryable.Except
Queryable.ExceptBy
Intersect или IntersectBy Возвращает пересечение множеств, т. е. элементы, присутствующие в каждой из двух коллекций. Неприменимо. Enumerable.Intersect
Enumerable.IntersectBy
Queryable.Intersect
Queryable.IntersectBy
Union или UnionBy Возвращает объединение множеств, т. е. уникальные элементы, присутствующие в одной из двух коллекций. Неприменимо. Enumerable.Union
Enumerable.UnionBy
Queryable.Union
Queryable.UnionBy

Сравнение операций над множествами

Отличающийся

На следующем рисунке показано поведение Enumerable.Distinct метода в последовательности символов. Возвращаемая последовательность содержит уникальные элементы из входной последовательности.

Рисунок, показывающий поведение Distinct().

Кроме

На следующем рисунке показано поведение Enumerable.Except. Возвращаемая последовательность содержит только элементы из первой входной последовательности, которые не находятся во второй входной последовательности.

Рисунок, показывающий действие Except().

Пересекаться

На следующем рисунке показано поведение Enumerable.Intersect. Возвращаемая последовательность содержит элементы, общие для обеих входных последовательностей.

Рисунок, показывающий пересечение двух последовательностей.

Союз

На следующем рисунке показана операция объединения на двух последовательностях символов. Возвращаемая последовательность содержит уникальные элементы из обеих входных последовательностей.

Рисунок, показывающий объединение двух последовательностей.

Пример синтаксиса выражения запроса

В следующем примере конструкция Distinct в запросе LINQ используется для возврата уникальных чисел из списка целых чисел.


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 

См. также