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 contanto que uma condição especificada seja true e, em seguida, ignora os elementos restantes.
Sobrecargas
TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) |
Retorna os elementos de uma sequência contanto 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>>) |
Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira. |
TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Retorna os elementos de uma sequência contanto 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);
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 os elementos serão retornados.
- predicate
- Expression<Func<TSource,Int32,Boolean>>
Uma função para testar cada elemento em relação a 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 por predicate
não é mais aprovado.
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 do 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 a própria chamada TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) como um método genérico construído. Em seguida, ele passa o MethodCallExpression para o CreateQuery(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 no 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
.
Aplica-se a
TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
- Origem:
- Queryable.cs
Retorna os elementos de uma sequência contanto 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);
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 os elementos serão retornados.
- predicate
- Expression<Func<TSource,Boolean>>
Uma função para testar cada elemento em relação a 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 por predicate
não é mais aprovado.
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 do 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 a própria chamada TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) como um método genérico construído. Em seguida, ele passa o MethodCallExpression para o CreateQuery(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 no source
até encontrar um elemento para o qual predicate
retorna false
. Ele retorna todos os elementos até esse ponto.