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.Where<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

 

Publicado: octubre de 2016

Filtra una secuencia de valores en función de un predicado. El índice de cada elemento se usa en la lógica de la función de predicado.

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

public static IEnumerable<TSource> Where<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parámetros

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

Un IEnumerable<T> para filtrar.

predicate
Type: System.Func<TSource, Int32, Boolean>

Función que va a probar cada elemento de origen para determinar si satisface una condición; el segundo parámetro de la función representa el índice del elemento de origen.

Valor devuelto

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

Un IEnumerable<T> que contiene los elementos de la secuencia de entrada que satisfacen la condición.

Parámetros de tipo

TSource

Tipo de los elementos de source.

Exception Condition
ArgumentNullException

El valor de source o predicate 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 primer argumento de predicate representa el elemento que se va a probar. El segundo argumento representa el índice de base cero del elemento dentro de source.

En el ejemplo de código siguiente se muestra cómo utilizar Where<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) para filtrar una secuencia en función de un predicado que incorpora el índice de cada elemento.

int[] numbers = { 0, 30, 20, 15, 90, 85, 40, 75 };

IEnumerable<int> query =
    numbers.Where((number, index) => number <= index * 10);

foreach (int number in query)
{
    Console.WriteLine(number);
}
/*
 This code produces the following output:

 0
 20
 15
 40
*/

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: