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

 

Publicado: octubre de 2016

Devuelve los elementos de una secuencia siempre que una condición especificada sea true. El índice del 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> TakeWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parámetros

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

Secuencia cuyos elementos se van a devolver.

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 se encuentran antes del elemento que no supera la prueba.

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 TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) método prueba cada elemento de source utilizando predicate y proporciona el elemento si el resultado es true. La enumeración se detiene cuando la función de predicado devuelve false para un elemento o cuando source no contiene más elementos.

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.

El TakeWhile y SkipWhile métodos son complementos funcionales. Dada una secuencia de coll y una función pura p, concatenar los resultados de coll.TakeWhile(p) y coll.SkipWhile(p) genera la misma secuencia que coll.

En Visual Basic sintaxis de expresiones de consulta un Take While cláusula se convierte en una invocación de TakeWhile.

En el ejemplo de código siguiente se muestra cómo utilizar TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) para devolver los elementos desde el comienzo de una secuencia como una condición que utiliza el índice del elemento sea true.

string[] fruits = { "apple", "passionfruit", "banana", "mango", 
                      "orange", "blueberry", "grape", "strawberry" };

IEnumerable<string> query =
    fruits.TakeWhile((fruit, index) => fruit.Length >= index);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
 This code produces the following output:

 apple
 passionfruit
 banana
 mango
 orange
 blueberry
*/

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: