Esta documentación está archivada y no tiene mantenimiento.

Queryable.Join<TOuter, TInner, TKey, TResult> (Método) (IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner, TResult>>, IEqualityComparer<TKey>)

Actualización: noviembre 2007

Establece una correlación entre los elementos de dos secuencias en función de la coincidencia de sus claves. Se usa un objeto IEqualityComparer<T> especificado para comparar claves.

Espacio de nombres:  System.Linq
Ensamblado:  System.Core (en System.Core.dll)

public static IQueryable<TResult> Join<TOuter, TInner, TKey, TResult>(
	this IQueryable<TOuter> outer,
	IEnumerable<TInner> inner,
	Expression<Func<TOuter, TKey>> outerKeySelector,
	Expression<Func<TInner, TKey>> innerKeySelector,
	Expression<Func<TOuter, TInner, TResult>> resultSelector,
	IEqualityComparer<TKey> comparer
)

J# admite el uso de APIs genéricas pero no admite la declaración de nuevas API.
JScript no admite el uso de métodos ni tipos genéricos.

Parámetros de tipo

TOuter

Tipo de los elementos de la primera secuencia.

TInner

Tipo de los elementos de la segunda secuencia.

TKey

Tipo de las claves devueltas por las funciones del selector de claves.

TResult

Tipo de los elementos del resultado.

Parámetros

outer
Tipo: System.Linq.IQueryable<TOuter>
Primera secuencia que se va a combinar.
inner
Tipo: System.Collections.Generic.IEnumerable<TInner>
Secuencia que se va a combinar con la primera secuencia.
outerKeySelector
Tipo: System.Linq.Expressions.Expression<Func<TOuter, TKey>>
Función para extraer la clave de combinación a partir de cada elemento de la primera secuencia.
innerKeySelector
Tipo: System.Linq.Expressions.Expression<Func<TInner, TKey>>
Función para extraer la clave de combinación a partir de cada elemento de la segunda secuencia.
resultSelector
Tipo: System.Linq.Expressions.Expression<Func<TOuter, TInner, TResult>>
Función que va a crear un elemento de resultado a partir de dos elementos coincidentes.
comparer
Tipo: System.Collections.Generic.IEqualityComparer<TKey>
IEqualityComparer<T> que va a aplicar un algoritmo hash y a comparar las claves.

Valor devuelto

Tipo: System.Linq.IQueryable<TResult>
Una interfaz IQueryable<T> que tiene elementos de tipo TResult que se han obtenido al realizar una combinación interna de dos secuencias.

Nota sobre el uso

En Visual Basic y C#, se puede llamar a este método como a un método de instancia en cualquier objeto de tipo IQueryable<TOuter>. Cuando emplee la sintaxis del método de instancia para llamar a este método, omita el primer parámetro. Para obtener más información, vea Métodos de extensión (Visual Basic) o Métodos de extensión (Guía de programación de C#).

ExcepciónCondición
ArgumentNullException

outer o inner o outerKeySelector o innerKeySelector o resultSelector es null.

Este método tiene al menos un parámetro de tipo Expression<TDelegate> cuyo argumento de tipo es uno de los tipos de Func<T, TResult>. En estos parámetros, puede pasar una expresión lambda y ésta se compilará en un objeto Expression<TDelegate>.

El método Join<TOuter, TInner, TKey, TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner, TResult>>, IEqualityComparer<TKey>) genera un objeto MethodCallExpression que representa al propio método Join<TOuter, TInner, TKey, TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner, TResult>>, IEqualityComparer<TKey>) que realiza la llamada como un método genérico construido. A continuación, pasa el objeto MethodCallExpression al método CreateQuery<TElement>(Expression) de la interfaz IQueryProvider representada por la propiedad Provider del parámetro outer.

El comportamiento de la consulta que se obtiene como resultado de ejecutar un árbol de expresión que representa al método Join<TOuter, TInner, TKey, TResult>(IQueryable<TOuter>, IEnumerable<TInner>, Expression<Func<TOuter, TKey>>, Expression<Func<TInner, TKey>>, Expression<Func<TOuter, TInner, TResult>>, IEqualityComparer<TKey>) que realiza la llamada depende de la implementación del tipo del parámetro outer. El comportamiento esperado es una combinación interna. Las funciones innerKeySelector y outerKeySelector se utilizan para extraer las claves de outer e inner, respectivamente. Estas claves se comparan para determinar su igualdad mediante comparer. El resultado de las comparaciones se utiliza para crear un par de elementos coincidentes por cada elemento de inner que coincide con un elemento de outer. A continuación, se invoca la función resultSelector para proyectar un objeto de resultado a partir de cada par de elementos coincidentes.

Windows Vista, Windows XP SP2, Windows Server 2003

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5
Mostrar: