Установка операций (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 применительно к последовательности символов. Возвращаемая последовательность содержит уникальные элементы из входной последовательности.
Except
На следующем рисунке показано поведение Enumerable.Except. Возвращаемая последовательность содержит только те элементы из первой входной последовательности, которых нет во второй.
Intersect
На следующем рисунке показано поведение Enumerable.Intersect. Возвращаемая последовательность содержит элементы, общие для обеих входных последовательностей.
Объединение
На следующем рисунке показана операция объединения двух последовательностей символов. Возвращаемая последовательность содержит уникальные элементы из обеих входных последовательностей.
Пример синтаксиса выражения запроса
В следующем примере предложение в запросе 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