Queryable.TakeWhile 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.
Retorna elementos de uma sequência desde que uma condição especificada seja verdadeira e, em seguida, ignora os elementos restantes.
Sobrecargas
| Nome | Description |
|---|---|
| TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) |
Retorna elementos de uma sequência desde que uma condição especificada seja verdadeira. |
| TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Retorna elementos de uma sequência desde que uma condição especificada seja verdadeira. O índice do elemento é usado na lógica da função de predicado. |
TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Retorna elementos de uma sequência desde que uma condição especificada seja verdadeira.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<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> TakeWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member TakeWhile : 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 TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(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>
A sequência da qual retornar elementos.
- predicate
- Expression<Func<TSource,Boolean>>
Uma função para testar cada elemento para uma condição.
Retornos
Um IQueryable<T> que contém elementos da sequência de entrada que ocorrem antes do elemento no qual o teste especificado não predicate passa mais.
- Atributos
Exceções
source ou predicate é null.
Exemplos
O exemplo de código a seguir demonstra como usar TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) para retornar elementos desde o início de uma sequência, desde que uma condição seja verdadeira.
string[] fruits = { "apple", "banana", "mango", "orange",
"passionfruit", "grape" };
// Take strings from the array until a string
// that is equal to "orange" is found.
IEnumerable<string> query =
fruits.AsQueryable()
.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);
foreach (string fruit in query)
Console.WriteLine(fruit);
/*
This code produces the following output:
apple
banana
mango
*/
Dim fruits() As String = {"apple", "banana", "mango", "orange", _
"passionfruit", "grape"}
' Take strings from the array until a string
' that is equal to "orange" is found.
Dim query = fruits.AsQueryable() _
.TakeWhile(Function(fruit) String.Compare("orange", fruit, True) <> 0)
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
' Display the output.
MsgBox(output.ToString())
'This code produces the following output:
'apple
'banana
'mango
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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) método gera um MethodCallExpression que representa chamar TakeWhile<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 TakeWhile<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. Ele retorna todos os elementos até esse ponto.
Aplica-se a
TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Retorna elementos de uma sequência desde que uma condição especificada seja verdadeira. 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> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<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> TakeWhile<TSource>(this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member TakeWhile : 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 TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(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>
A sequência da qual retornar elementos.
- predicate
- Expression<Func<TSource,Int32,Boolean>>
Uma função para testar cada elemento para uma condição; o segundo parâmetro da função representa o índice do elemento na sequência de origem.
Retornos
Um IQueryable<T> que contém elementos da sequência de entrada que ocorrem antes do elemento no qual o teste especificado não predicate passa mais.
- Atributos
Exceções
source ou predicate é null.
Exemplos
O exemplo de código a seguir demonstra como usar TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) para retornar elementos desde o início de uma sequência, desde que uma condição que use o índice do elemento seja verdadeira.
string[] fruits = { "apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry" };
// Take strings from the array until a string whose length
// is less than its index in the array is found.
IEnumerable<string> query =
fruits.AsQueryable()
.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
*/
Dim fruits() As String = _
{"apple", "passionfruit", "banana", "mango", _
"orange", "blueberry", "grape", "strawberry"}
' Take strings from the array until a string whose length
' is less than its index in the array is found.
Dim query = fruits.AsQueryable() _
.TakeWhile(Function(fruit, index) fruit.Length >= index)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
MsgBox(output.ToString())
' This code produces the following output:
' apple
' passionfruit
' banana
' mango
' orange
' blueberry
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 TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) método gera um MethodCallExpression que representa chamar TakeWhile<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 TakeWhile<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. Ele retorna todos os elementos até esse ponto. O índice de cada elemento de origem é fornecido como o segundo argumento para predicate.