Definir Operações (Visual Basic)
As operações de conjunto na LINQ referem-se a operações de consulta que geram um conjunto de resultados baseado na presença ou ausência de elementos equivalentes dentro da mesma ou de coleções (ou conjuntos) separadas.
Os métodos de operador de consulta padrão que executam operações de conjunto estão listados na seção a seguir.
Métodos
Nome do método | Descrição | Sintaxe da Expressão de Consulta do Visual Basic | Mais informações |
---|---|---|---|
Distinct ou DistinctBy | Remove os valores duplicados de uma coleção. | Distinct |
Enumerable.Distinct Enumerable.DistinctBy Queryable.Distinct Queryable.DistinctBy |
Exceto ou ExceptBy | Retorna a diferença de conjunto, que significa os elementos de uma coleção que não aparecem em uma segunda coleção. | Não aplicável. | Enumerable.Except Enumerable.ExceptBy Queryable.Except Queryable.ExceptBy |
Intersect ou IntersectBy | Retorna a interseção de conjunto, o que significa os elementos que aparecem em cada uma das duas coleções. | Não aplicável. | Enumerable.Intersect Enumerable.IntersectBy Queryable.Intersect Queryable.IntersectBy |
Union ou UnionBy | Retorna a união de conjunto, o que significa os elementos únicos que aparecem em qualquer uma das duas coleções. | Não aplicável. | Enumerable.Union Enumerable.UnionBy Queryable.Union Queryable.UnionBy |
Comparação de operações de conjuntos
Distinct
A ilustração a seguir mostra o comportamento do método Enumerable.Distinct em uma sequência de caracteres. A sequência retornada contém os elementos exclusivos da sequência de entrada.
Except
A ilustração a seguir mostra o comportamento de Enumerable.Except. A sequência retornada contém apenas os elementos da primeira sequência de entrada que não estão na segunda sequência de entrada.
Intersect
A ilustração a seguir mostra o comportamento de Enumerable.Intersect. A sequência retornada contém os elementos que são comuns a ambas as sequências de entrada.
Union
A ilustração a seguir descreve uma operação de união em duas sequências de caracteres. A sequência retornada contém os elementos exclusivos das duas sequências de entrada.
Exemplo de sintaxe de expressão de consulta
O exemplo a seguir usa a cláusula Distinct
em uma consulta LINQ para retornar os números exclusivos de uma lista de inteiros.
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