Enumerable.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>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Retorna os elementos de uma sequência contanto que uma condição especificada seja verdadeira. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Origem:
- Take.cs
- Origem:
- Take.cs
- Origem:
- Take.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::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Integer, Boolean)) As IEnumerable(Of TSource)
Parâmetros de tipo
- TSource
O tipo dos elementos de source
.
Parâmetros
- source
- IEnumerable<TSource>
A sequência da qual os elementos serão retornados.
Uma função para testar cada elemento de origem em relação a uma condição; o segundo parâmetro da função representa o índice do elemento de origem.
Retornos
Um IEnumerable<T> que contém elementos da sequência de entrada que ocorrem antes do elemento no qual o teste não é mais aprovado.
Exceções
source
ou predicate
é null
.
Exemplos
O exemplo de código a seguir demonstra como usar TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) para retornar elementos do 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" };
IEnumerable<string> query =
fruits.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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"}
' Take strings from the array until one
' of the string's lengths is greater than or
' equal to the string item's index in the array.
Dim query As IEnumerable(Of String) =
fruits.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
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' passionfruit
' banana
' mango
' orange
' blueberry
Comentários
Esse método é implementado usando a execução adiada. O valor retornado imediato é um objeto que armazena todas as informações necessárias para executar a ação. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando seu GetEnumerator
método diretamente ou usando foreach
em C# ou For Each
no Visual Basic.
O TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) método testa cada elemento de source
usando predicate
e produz o elemento se o resultado for true
. A enumeração é interrompida quando a função de predicado retorna false
para um elemento ou quando source
não contém mais elementos.
O primeiro argumento de predicate
representa o elemento a ser testado. O segundo argumento representa o índice baseado em zero do elemento dentro source
de .
Os TakeWhile métodos e SkipWhile são complementos funcionais. Dada uma sequência coll
de coleção e uma função p
pura , concatenar os resultados de coll.TakeWhile(p)
e coll.SkipWhile(p)
produz a mesma sequência que coll
.
Na sintaxe da expressão de consulta do Visual Basic, uma Take While
cláusula é convertida em uma invocação de TakeWhile.
Confira também
Aplica-se a
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Origem:
- Take.cs
- Origem:
- Take.cs
- Origem:
- Take.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::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IEnumerable(Of TSource), predicate As Func(Of TSource, Boolean)) As IEnumerable(Of TSource)
Parâmetros de tipo
- TSource
O tipo dos elementos de source
.
Parâmetros
- source
- IEnumerable<TSource>
Uma sequência a qual retornar os elementos.
Retornos
Um IEnumerable<T> que contém elementos da sequência de entrada que ocorrem antes do elemento no qual o teste não é mais aprovado.
Exceções
source
ou predicate
é null
.
Exemplos
O exemplo de código a seguir demonstra como usar TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) para retornar elementos do início de uma sequência, desde que uma condição seja verdadeira.
string[] fruits = { "apple", "banana", "mango", "orange",
"passionfruit", "grape" };
IEnumerable<string> query =
fruits.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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}
' Take strings from the array until one of
' the strings matches "orange".
Dim query As IEnumerable(Of String) =
fruits.TakeWhile(Function(fruit) _
String.Compare("orange", fruit, True) <> 0)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' banana
' mango
Comentários
Esse método é implementado usando a execução adiada. O valor retornado imediato é um objeto que armazena todas as informações necessárias para executar a ação. A consulta representada por esse método não é executada até que o objeto seja enumerado chamando seu GetEnumerator
método diretamente ou usando foreach
em C# ou For Each
no Visual Basic.
O TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) método testa cada elemento de source
usando predicate
e produz o elemento se o resultado for true
. A enumeração é interrompida quando a função de predicado retorna false
para um elemento ou quando source
não contém mais elementos.
Os TakeWhile métodos e SkipWhile são complementos funcionais. Dada uma sequência coll
de coleção e uma função p
pura , concatenar os resultados de coll.TakeWhile(p)
e coll.SkipWhile(p)
produz a mesma sequência que coll
.
Na sintaxe da expressão de consulta do Visual Basic, uma Take While
cláusula é convertida em uma invocação de TakeWhile.