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.SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

 

Ignora elementos em uma sequência, contanto que uma condição especificada seja verdadeira e retorne os elementos restantes. 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> SkipWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parâmetros

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

Um IEnumerable<T> do 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 os elementos da sequência de entrada, começando no primeiro elemento da série linear que não passa no teste especificado por predicate.

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.SkipWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean}) method tests each element of source by using predicate and skips the element if the result is true. After the predicate function returns false for an element, that element and the remaining elements in source are yielded and there are no more invocations of predicate.

If predicate returns true for all elements in the sequence, an empty T:System.Collections.Generic.IEnumerable`1 is returned.

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 Skip While clause translates to an invocation of Overload:System.Linq.Enumerable.SkipWhile.

The following code example demonstrates how to use M:System.Linq.Enumerable.SkipWhile``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Int32,System.Boolean}) to skip elements of an array as long as a condition that depends on the element's index is true.

int[] amounts = { 5000, 2500, 9000, 8000, 
                    6500, 4000, 1500, 5500 };

IEnumerable<int> query =
    amounts.SkipWhile((amount, index) => amount > index * 1000);

foreach (int amount in query)
{
    Console.WriteLine(amount);
}

/*
 This code produces the following output:

 4000
 1500
 5500
*/

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: