Operaciones set (C#)Set Operations (C#)

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).Set operations in LINQ refer to query operations that produce a result set that is based on the presence or absence of equivalent elements within the same or separate collections (or sets).

Los métodos del operador de consulta estándar que realizan operaciones set se indican en la sección siguiente.The standard query operator methods that perform set operations are listed in the following section.

MétodosMethods

Nombre del métodoMethod Name DescripciónDescription Sintaxis de la expresión de consulta de C#C# Query Expression Syntax Más informaciónMore Information
DistinctDistinct Quita valores duplicados de una colección.Removes duplicate values from a collection. No es aplicable.Not applicable. Enumerable.Distinct

Queryable.Distinct
ExceptExcept Devuelve la diferencia de conjuntos, es decir, los elementos de una colección que no aparecen en una segunda colección.Returns the set difference, which means the elements of one collection that do not appear in a second collection. No es aplicable.Not applicable. Enumerable.Except

Queryable.Except
Formar intersecciónIntersect Devuelve la intersección de conjuntos, es decir, los elementos que aparecen en las dos colecciones.Returns the set intersection, which means elements that appear in each of two collections. No es aplicable.Not applicable. Enumerable.Intersect

Queryable.Intersect
UniónUnion Devuelve la unión de conjuntos, es decir, los elementos únicos que aparecen en una de las dos colecciones.Returns the set union, which means unique elements that appear in either of two collections. No es aplicable.Not applicable. Enumerable.Union

Queryable.Union

Comparación de operaciones setComparison of Set Operations

DistinctDistinct

En la siguiente ilustración se muestra el comportamiento del método Enumerable.Distinct en una secuencia de caracteres.The following example depicts the behavior of the Enumerable.Distinct method on a sequence of characters. La secuencia devuelta contiene los elementos únicos de la secuencia de entrada.The returned sequence contains the unique elements from the input sequence.

Gráfico en el que se muestra el comportamiento de Distinct().

string[] planets = { "Mercury", "Venus", "Venus", "Earth", "Mars", "Earth" };

IEnumerable<string> query = from planet in planets.Distinct()
                            select planet;

foreach (var str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:
 * 
 * Mercury
 * Venus
 * Earth
 * Mars
 */

ExceptExcept

En el ejemplo siguiente se muestra el comportamiento de Enumerable.Except.The following example depicts the behavior of 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.The returned sequence contains only the elements from the first input sequence that are not in the second input sequence.

Gráfico que muestra la acción de Except().Graphic showing the action of Except().

string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" };
string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" };

IEnumerable<string> query = from planet in planets1.Except(planets2)
                            select planet;

foreach (var str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:
 * 
 * Venus
 */

Formar intersecciónIntersect

En el ejemplo siguiente se muestra el comportamiento de Enumerable.Intersect.The following example depicts the behavior of Enumerable.Intersect. La secuencia devuelta contiene los elementos que son comunes a las dos secuencias de entrada.The returned sequence contains the elements that are common to both of the input sequences.

Gráfico en el que se muestra la intersección de dos secuencias.

string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" };
string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" };

IEnumerable<string> query = from planet in planets1.Intersect(planets2)
                            select planet;

foreach (var str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:
 * 
 * Mercury
 * Earth
 * Jupiter
 */

UniónUnion

En el siguiente ejemplo se muestra una operación de unión en dos secuencias de caracteres.The following example depicts a union operation on two sequences of characters. La secuencia devuelta contiene los elementos únicos de las dos secuencias de entrada.The returned sequence contains the unique elements from both input sequences.

Gráfico en el que se muestra la unión de dos secuencias.

string[] planets1 = { "Mercury", "Venus", "Earth", "Jupiter" };
string[] planets2 = { "Mercury", "Earth", "Mars", "Jupiter" };

IEnumerable<string> query = from planet in planets1.Union(planets2)
                            select planet;

foreach (var str in query)
{
    Console.WriteLine(str);
}

/* This code produces the following output:
 * 
 * Mercury
 * Venus
 * Earth
 * Jupiter
 * Mars
 */

Vea tambiénSee also