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

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

Методы стандартных операторов запросов, которые выполняют операции над множествами, перечислены в следующем разделе.

Методы

Имя метода Description Синтаксис выражения запроса Visual Basic Дополнительные сведения
Distinct или DistinctBy Удаляет повторяющиеся значения из коллекции. Distinct Enumerable.Distinct
Enumerable.DistinctBy
Queryable.Distinct
Queryable.DistinctBy
Except или ExceptBy Возвращает разность множеств, т. е. элементы одной коллекции, которые отсутствуют во второй. Неприменимо. 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

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

Distinct

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

Graphic showing the behavior of Distinct().

Except

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

Graphic showing the action of Except().

Intersect

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

Graphic showing the intersection of two sequences.

Объединение

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

Graphic showing the union of two sequences.

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

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


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 

См. также