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