Operaciones Set (Visual Basic)
Las operaciones set de LINQ se refieren a operaciones de consulta que generan un conjunto de resultados en función de la presencia o ausencia de elementos equivalentes dentro de la misma colección o en distintas colecciones (o conjuntos).
Los métodos del operador de consulta estándar que realizan operaciones set se indican en la sección siguiente.
Métodos
Nombre del método | Descripción | Sintaxis de expresiones de consulta de Visual Basic | Más información |
---|---|---|---|
Distinct o DistinctBy | Quita valores duplicados de una colección. | Distinct |
Enumerable.Distinct Enumerable.DistinctBy Queryable.Distinct Queryable.DistinctBy |
Except o ExceptBy | Devuelve la diferencia de conjuntos, es decir, los elementos de una colección que no aparecen en una segunda colección. | No es aplicable. | Enumerable.Except Enumerable.ExceptBy Queryable.Except Queryable.ExceptBy |
Intersect o IntersectBy | Devuelve la intersección de conjuntos, es decir, los elementos que aparecen en las dos colecciones. | No es aplicable. | Enumerable.Intersect Enumerable.IntersectBy Queryable.Intersect Queryable.IntersectBy |
Union o UnionBy | Devuelve la unión de conjuntos, es decir, los elementos únicos que aparecen en una de las dos colecciones. | No es aplicable. | Enumerable.Union Enumerable.UnionBy Queryable.Union Queryable.UnionBy |
Comparación de operaciones set
Distinct
En la siguiente ilustración se muestra el comportamiento del método Enumerable.Distinct en una secuencia de caracteres. La secuencia devuelta contiene los elementos únicos de la secuencia de entrada.
Except
En la siguiente ilustración se muestra el comportamiento de Enumerable.Except. La secuencia devuelta solo contiene los elementos de la primera secuencia de entrada que no están en la segunda secuencia de entrada.
Intersect
En la siguiente ilustración se muestra el comportamiento de Enumerable.Intersect. La secuencia devuelta contiene los elementos que son comunes a las dos secuencias de entrada.
Union
En la siguiente ilustración se muestra una operación de unión en dos secuencias de caracteres. La secuencia devuelta contiene los elementos únicos de las dos secuencias de entrada.
Ejemplo de sintaxis de expresiones de consulta
En el ejemplo siguiente se usa la cláusula Distinct
en una consulta LINQ para devolver los números únicos de una lista de enteros.
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