Queryable.SkipWhile Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Ignora elementos em uma sequência, desde que uma condição especificada seja verdadeira e, em seguida, retorna os elementos restantes.
Sobrecargas
| Nome | Description |
|---|---|
| SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Ignora elementos em uma sequência, desde que uma condição especificada seja verdadeira e, em seguida, retorna os elementos restantes. |
| SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Ignora elementos em uma sequência, desde que uma condição especificada seja verdadeira e, em seguida, retorna os elementos restantes. O índice do elemento é usado na lógica da função de predicado. |
SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Ignora elementos em uma sequência, desde que uma condição especificada seja verdadeira e, em seguida, retorna os elementos restantes.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TSource> ^ SkipWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> SkipWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TSource> SkipWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member SkipWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member SkipWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As IQueryable(Of TSource)
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
Parâmetros
- source
- IQueryable<TSource>
Um IQueryable<T> elemento do qual retornar elementos.
- predicate
- Expression<Func<TSource,Boolean>>
Uma função para testar cada elemento para uma condição.
Retornos
Um IQueryable<T> elemento que contém elementos do source início no primeiro elemento da série linear que não passa no teste especificado por predicate.
- Atributos
Exceções
source ou predicate é null.
Exemplos
O exemplo de código a seguir demonstra como usar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) para ignorar elementos de uma matriz, desde que uma condição seja verdadeira.
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
*/
Dim grades() As Integer = {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 that
' occur after the first grade that is less than 80.
Dim lowerGrades = grades.AsQueryable() _
.OrderByDescending(Function(grade) grade) _
.SkipWhile(Function(grade) grade >= 80)
Dim output As New System.Text.StringBuilder
output.AppendLine("All grades below 80:")
For Each grade As Integer In lowerGrades
output.AppendLine(grade)
Next
' Display the output.
MsgBox(output.ToString())
' This code produces the following output:
' All grades below 80:
' 70
' 59
' 56
Comentários
Esse método tem pelo menos um parâmetro de tipo Expression<TDelegate> cujo argumento de tipo é um dos Func<T,TResult> tipos. Para esses parâmetros, você pode passar uma expressão lambda e ela será compilada para um Expression<TDelegate>.
O SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) método gera um MethodCallExpression que representa chamar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) a si mesmo como um método genérico construído. Em seguida, ele passa o MethodCallExpressionCreateQuery(Expression) método do IQueryProvider representado pela Provider propriedade do source parâmetro.
O comportamento da consulta que ocorre como resultado da execução de uma árvore de expressão que representa a chamada SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depende da implementação do tipo do source parâmetro. O comportamento esperado é que ele se aplica predicate a cada elemento source até encontrar um elemento para o qual predicate retorna false. Esse elemento e todos os elementos restantes são retornados.
Aplica-se a
SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Ignora elementos em uma sequência, desde que uma condição especificada seja verdadeira e, em seguida, retorna os elementos restantes. O índice do elemento é usado na lógica da função de predicado.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TSource> ^ SkipWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> SkipWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IQueryable<TSource> SkipWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member SkipWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member SkipWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function SkipWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Integer, Boolean))) As IQueryable(Of TSource)
Parâmetros de tipo
- TSource
O tipo dos elementos de source.
Parâmetros
- source
- IQueryable<TSource>
Um IQueryable<T> elemento do qual retornar elementos.
- predicate
- Expression<Func<TSource,Int32,Boolean>>
Uma função para testar cada elemento para uma condição; o segundo parâmetro dessa função representa o índice do elemento de origem.
Retornos
Um IQueryable<T> elemento que contém elementos do source início no primeiro elemento da série linear que não passa no teste especificado por predicate.
- Atributos
Exceções
source ou predicate é null.
Exemplos
O exemplo de código a seguir demonstra como usar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) para ignorar elementos de uma matriz, desde que uma condição que dependa do índice do elemento seja verdadeira.
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
*/
Dim amounts() As Integer = {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.
Dim query = amounts.AsQueryable() _
.SkipWhile(Function(amount, index) amount > index * 1000)
Dim output As New System.Text.StringBuilder
For Each amount As Integer In query
output.AppendLine(amount)
Next
' Display the output.
MsgBox(output.ToString())
' This code produces the following output:
' 4000
' 1500
' 5500
Comentários
Esse método tem pelo menos um parâmetro de tipo Expression<TDelegate> cujo argumento de tipo é um dos Func<T,TResult> tipos. Para esses parâmetros, você pode passar uma expressão lambda e ela será compilada para um Expression<TDelegate>.
O SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) método gera um MethodCallExpression que representa chamar SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) a si mesmo como um método genérico construído. Em seguida, ele passa o MethodCallExpressionCreateQuery(Expression) método do IQueryProvider representado pela Provider propriedade do source parâmetro.
O comportamento da consulta que ocorre como resultado da execução de uma árvore de expressão que representa a chamada SkipWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) depende da implementação do tipo do source parâmetro. O comportamento esperado é que ele se aplica predicate a cada elemento source até encontrar um elemento para o qual predicate retorna false. Esse elemento e todos os elementos restantes são retornados. O índice de cada elemento de origem é fornecido como o segundo argumento para predicate.