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

 

Publicado: noviembre de 2016

Omite los elementos de una secuencia siempre que una condición especificada sea true y, a continuación, devuelve los elementos restantes. 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> SkipWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parámetros

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

Un IEnumerable<T> para devolver los elementos.

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 comenzando en el primer elemento de la serie lineal que no pasa la prueba especificada por predicate.

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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) método prueba cada elemento de source utilizando predicate y omite el elemento si el resultado es true. Después de la función de predicado devuelve false para un elemento, ese elemento y los elementos restantes en source se produjo y no hay ninguna más invocaciones de predicate.

Si predicate devuelve true para todos los elementos de la secuencia, una cadena vacía IEnumerable<T> se devuelve.

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 Skip While cláusula se convierte en una invocación de SkipWhile.

En el ejemplo de código siguiente se muestra cómo utilizar SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) para omitir los elementos de una matriz siempre que una condición que depende del índice del elemento sea true.

int[] amounts = { 5000, 2500, 9000, 8000, 
                    6500, 4000, 1500, 5500 };

IEnumerable<int> query =
    amounts.SkipWhile((amount, index) => amount > index * 1000);

foreach (int amount in query)
{
    Console.WriteLine(amount);
}

/*
 This code produces the following output:

 4000
 1500
 5500
*/

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: