Leer en inglés

Compartir a través de


Queryable.Intersect Método

Definición

Proporciona la intersección de conjuntos de dos secuencias.

Sobrecargas

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Proporciona la intersección de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores.

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Proporciona la intersección de conjuntos de dos secuencias utilizando el objeto IEqualityComparer<T> especificado para comparar los valores.

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Proporciona la intersección de conjuntos de dos secuencias utilizando el comparador de igualdad predeterminado para comparar los valores.

C#
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2);

Parámetros de tipo

TSource

Tipo de los elementos de las secuencias de entrada.

Parámetros

source1
IQueryable<TSource>

Secuencia de la que se devuelven los elementos que también aparecen en source2.

source2
IEnumerable<TSource>

Secuencia de la que se devuelven los elementos que también aparecen en la primera secuencia.

Devoluciones

IQueryable<TSource>

Una secuencia que contiene la intersección de conjuntos de las dos secuencias.

Excepciones

source1 o source2 es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) para devolver los elementos que aparecen en cada una de las dos secuencias.

C#
int[] id1 = { 44, 26, 92, 30, 71, 38 };
int[] id2 = { 39, 59, 83, 47, 26, 4, 30 };

// Get the numbers that occur in both arrays (id1 and id2).
IEnumerable<int> both = id1.AsQueryable().Intersect(id2);

foreach (int id in both)
    Console.WriteLine(id);

/*
    This code produces the following output:

    26
    30
*/

Comentarios

El Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) método genera un MethodCallExpression objeto que representa llamarse Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery<TElement>(Expression) método del IQueryProvider representado por la Provider propiedad del source1 parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>) depende de la implementación del tipo del source1 parámetro. El comportamiento esperado es que se devuelvan todos los elementos de source1 que también están en source2 .

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Proporciona la intersección de conjuntos de dos secuencias utilizando el objeto IEqualityComparer<T> especificado para comparar los valores.

C#
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource> comparer);
C#
public static System.Linq.IQueryable<TSource> Intersect<TSource> (this System.Linq.IQueryable<TSource> source1, System.Collections.Generic.IEnumerable<TSource> source2, System.Collections.Generic.IEqualityComparer<TSource>? comparer);

Parámetros de tipo

TSource

Tipo de los elementos de las secuencias de entrada.

Parámetros

source1
IQueryable<TSource>

Una interfaz IQueryable<T> de la que se devuelven los elementos que también aparecen en source2.

source2
IEnumerable<TSource>

Una interfaz IEnumerable<T> de la que se devuelven los elementos que también aparecen en la primera secuencia.

comparer
IEqualityComparer<TSource>

IEqualityComparer<T> para comparar valores.

Devoluciones

IQueryable<TSource>

Una interfaz IQueryable<T> que contiene la intersección de conjuntos de las dos secuencias.

Excepciones

source1 o source2 es null.

Comentarios

El Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) método genera un MethodCallExpression objeto que representa llamarse Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery<TElement>(Expression) método del IQueryProvider representado por la Provider propiedad del source1 parámetro .

El comportamiento de la consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada Intersect<TSource>(IQueryable<TSource>, IEnumerable<TSource>, IEqualityComparer<TSource>) depende de la implementación del tipo del source1 parámetro. El comportamiento esperado es que se devuelvan todos los elementos de source1 que también están en source2 . El comparer parámetro se usa para comparar elementos.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0