Leer en inglés

Compartir a través de


Queryable.SkipWhile Método

Definición

Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y luego devuelve los elementos restantes.

Sobrecargas

SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y luego devuelve los elementos restantes.

SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y luego devuelve los elementos restantes. El índice del elemento se usa en la lógica de la función de predicado.

SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y luego devuelve los elementos restantes.

C#
public static System.Linq.IQueryable<TSource> SkipWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a devolver los elementos.

predicate
Expression<Func<TSource,Boolean>>

Función para probar cada elemento de una condición.

Devoluciones

IQueryable<TSource>

IQueryable<T> que contiene los elementos de source comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada por predicate.

Excepciones

source o predicate es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) para omitir elementos de una matriz siempre y cuando se cumpla una condición.

C#
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

// Get all grades less than 80 by first
// sorting the grades in descending order and then
// taking all the grades after the first grade
// that is less than 80.
IEnumerable<int> lowerGrades =
    grades.AsQueryable()
    .OrderByDescending(grade => grade)
    .SkipWhile(grade => grade >= 80);

Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
    Console.WriteLine(grade);

/*
    This code produces the following output:

    All grades below 80:
    70
    59
    56
*/

Comentarios

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

El SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) método genera un MethodCallExpression objeto que representa llamarse SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que se aplica predicate a cada elemento de source hasta que encuentre un elemento para el que predicate devuelve false. Ese elemento y todos los elementos restantes se devuelven.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Omite los elementos de una secuencia en tanto que el valor de una condición especificada sea true y luego devuelve los elementos restantes. El índice del elemento se usa en la lógica de la función de predicado.

C#
public static System.Linq.IQueryable<TSource> SkipWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);

Parámetros de tipo

TSource

Tipo de los elementos de source.

Parámetros

source
IQueryable<TSource>

IQueryable<T> del que se van a devolver los elementos.

predicate
Expression<Func<TSource,Int32,Boolean>>

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

Devoluciones

IQueryable<TSource>

IQueryable<T> que contiene los elementos de source comenzando por el primer elemento de la serie lineal que no pasa la prueba especificada por predicate.

Excepciones

source o predicate es null.

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) para omitir elementos de una matriz siempre y cuando una condición que dependa del índice del elemento sea verdadera.

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

// Skip over amounts in the array until the first amount
// that is less than or equal to the product of its
// index in the array and 1000. Take the remaining items.
IEnumerable<int> query =
    amounts.AsQueryable()
    .SkipWhile((amount, index) => amount > index * 1000);

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

/*
    This code produces the following output:

    4000
    1500
    5500
*/

Comentarios

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

El SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) método genera un MethodCallExpression objeto que representa llamarse SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) a sí mismo como un método genérico construido. A continuación, pasa al MethodCallExpressionCreateQuery(Expression) método del IQueryProvider representado por la Provider propiedad del source parámetro .

El comportamiento de consulta que se produce como resultado de ejecutar un árbol de expresión que representa la llamada SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) depende de la implementación del tipo del source parámetro. El comportamiento esperado es que se aplica predicate a cada elemento de source hasta que encuentre un elemento para el que predicate devuelve false. Ese elemento y todos los elementos restantes se devuelven. El índice de cada elemento de origen se proporciona como segundo argumento para predicate.

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0