Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Enumerable.SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>)

 

Publicado: octubre de 2016

Proyecta cada elemento de una secuencia en IEnumerable<T>, reduce las secuencias resultantes en una única secuencia e invoca una función del selector de resultados en cada elemento. El índice de cada elemento de origen se utiliza en el formulario proyectado intermedio de ese elemento.

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

public static IEnumerable<TResult> SelectMany<TSource, TCollection, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, int, IEnumerable<TCollection>> collectionSelector,
	Func<TSource, TCollection, TResult> resultSelector
)

Parámetros

source
Type: System.Collections.Generic.IEnumerable<TSource>

Secuencia de valores que se va a proyectar.

collectionSelector
Type: System.Func<TSource, Int32, IEnumerable<TCollection>>

Función de transformación que se va a aplicar a cada elemento de origen; el segundo parámetro de la función representa el índice del elemento de origen.

resultSelector
Type: System.Func<TSource, TCollection, TResult>

Función de transformación para aplicar a cada elemento de la secuencia intermedia.

Valor devuelto

Type: System.Collections.Generic.IEnumerable<TResult>

Una IEnumerable<T> cuyos elementos son el resultado de invocar la función de transformación uno a varios collectionSelector en cada elemento de source y, a continuación, asignar cada uno de esos elementos de la secuencia y sus elementos de origen correspondientes a un elemento de resultado.

Parámetros de tipo

TSource

Tipo de los elementos de source.

TCollection

Tipo de los elementos intermedios recopilados por collectionSelector.

TResult

El tipo de los elementos de la secuencia resultante.

Exception Condition
ArgumentNullException

source o collectionSelector o resultSelector es null.

Este método se implementa mediante la ejecución diferida. El valor devuelto inmediato es un objeto que almacena toda la información necesaria para realizar la acción. La consulta representada por este método no se ejecuta hasta que se enumera el objeto llamando a su GetEnumerator método directamente o mediante foreach en Visual C# o For Each en Visual Basic.

El SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>) método resulta útil cuando tiene que mantener los elementos de source en el ámbito de la lógica de consulta que se produce después de llamar a SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>). Vea la sección Ejemplo para obtener un ejemplo de código. Si hay una relación bidireccional entre los objetos de tipo TSource y objetos de tipo TCollection, es decir, si un objeto de tipo TCollection proporciona una propiedad para recuperar la TSource objeto que lo generó, no necesita esta sobrecarga de SelectMany<TSource, TCollection, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TCollection>>, Func<TSource, TCollection, TResult>). En su lugar, puede utilizar SelectMany<TSource, TResult>(IEnumerable<TSource>, Func<TSource, Int32, IEnumerable<TResult>>) y volver a la TSource de objeto a través de la TCollection objeto.

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 3.5
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar: