Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Método Enumerable.TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

 

Publicado: agosto de 2016

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.

Namespace:   System.Linq
Assembly:  System.Core (em System.Core.dll)

public static IEnumerable<TSource> TakeWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parâmetros

source
Type: System.Collections.Generic.IEnumerable<TSource>

A sequência da qual os elementos serão retornados.

predicate
Type: System.Func<TSource, Int32, Boolean>

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.

Valor Retornado

Type: System.Collections.Generic.IEnumerable<TSource>

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.

Parâmetros de Tipo

TSource

O tipo dos elementos de source.

Exception Condition
ArgumentNullException

source ou predicate é null.

This method is implemented by using deferred execution. The immediate return value is an object that stores all the information that is required to perform the action. The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in csprcs or For Each in vbprvb.

The M:System.Linq.Enumerable.TakeWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean}) method tests each element of source by using predicate and yields the element if the result is true. Enumeration stops when the predicate function returns false for an element or when source contains no more elements.

The first argument of predicate represents the element to test. The second argument represents the zero-based index of the element within source.

The Overload:System.Linq.Enumerable.TakeWhile and Overload:System.Linq.Enumerable.SkipWhile methods are functional complements. Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.

In vbprvb query expression syntax, a Take While clause translates to an invocation of Overload:System.Linq.Enumerable.TakeWhile.

The following code example demonstrates how to use M:System.Linq.Enumerable.TakeWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean}) to return elements from the start of a sequence as long as a condition that uses the element's index is true.

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
*/

Plataforma Universal do Windows
Disponível desde 8
.NET Framework
Disponível desde 3.5
Biblioteca de Classes Portátil
Com suporte no: plataformas portáteis do .NET
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0
Windows Phone
Disponível desde 8.1
Retornar ao início
Mostrar: