Enumerable.SkipWhile Metoda

Definicja

Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy.

Przeciążenia

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. Indeks elementu jest używany w logice funkcji predykatu.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Źródło:
Skip.cs
Źródło:
Skip.cs
Źródło:
Skip.cs

Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy.

public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Parametry typu

TSource

Typ elementów elementu source.

Parametry

source
IEnumerable<TSource>

Element do IEnumerable<T> zwracania elementów.

predicate
Func<TSource,Boolean>

Funkcja testowania każdego elementu na stanie.

Zwraca

IEnumerable<TSource>

Element IEnumerable<T> zawierający elementy z sekwencji danych wejściowych rozpoczynający się od pierwszego elementu w serii liniowej, który nie przechodzi testu określonego przez predicateelement .

Wyjątki

source lub predicate to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak pominąć SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) elementy tablicy, o ile warunek jest spełniony.

int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

IEnumerable<int> lowerGrades =
    grades
    .OrderByDescending(grade => grade)
    .SkipWhile(grade => grade >= 80);

Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
{
    Console.WriteLine(grade);
}

/*
 This code produces the following output:

 All grades below 80:
 70
 59
 56
*/

Uwagi

Metoda SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) jest implementowana przy użyciu odroczonego wykonywania. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji. Zapytanie reprezentowane przez tę metodę nie jest wykonywane, dopóki obiekt nie zostanie wyliczony, wywołując metodę GetEnumerator bezpośrednio lub używając w foreach języku C# lub For Each w Visual Basic.

Ta metoda sprawdza każdy element source przy użyciu elementu predicate i pomija element, jeśli wynik to true. Po powrocie false funkcji predykatu dla elementu ten element i pozostałe elementy są source zwracane i nie ma więcej wywołań predicate.

Jeśli predicate zwraca true wartość dla wszystkich elementów w sekwencji, zwracana jest pusta IEnumerable<T> wartość.

Metody TakeWhile i SkipWhile są uzupełnieniem funkcjonalnym. Biorąc pod uwagę sekwencję coll kolekcji i czystą funkcję p, łączenie wyników coll.TakeWhile(p) i coll.SkipWhile(p) zwraca tę samą sekwencję co coll.

W składni wyrażenia zapytania języka Visual Basic klauzula Skip While tłumaczy się na wywołanie SkipWhileelementu .

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Źródło:
Skip.cs
Źródło:
Skip.cs
Źródło:
Skip.cs

Pomija elementy w sekwencji, o ile określony warunek jest spełniony, a następnie zwraca pozostałe elementy. Indeks elementu jest używany w logice funkcji predykatu.

public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);

Parametry typu

TSource

Typ elementów elementu source.

Parametry

source
IEnumerable<TSource>

Element do IEnumerable<T> zwracania elementów.

predicate
Func<TSource,Int32,Boolean>

Funkcja do testowania każdego elementu źródłowego dla warunku; drugi parametr funkcji reprezentuje indeks elementu źródłowego.

Zwraca

IEnumerable<TSource>

Element IEnumerable<T> zawierający elementy z sekwencji danych wejściowych rozpoczynający się od pierwszego elementu w serii liniowej, który nie przechodzi testu określonego przez predicateelement .

Wyjątki

source lub predicate to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak pominąć SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) elementy tablicy, o ile warunek zależny od indeksu elementu jest spełniony.

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

Uwagi

Ta metoda jest implementowana za pomocą odroczonego wykonania. Bezpośrednio zwracana wartość jest obiektem, który przechowuje wszystkie informacje wymagane do wykonania akcji. Zapytanie reprezentowane przez tę metodę nie jest wykonywane, dopóki obiekt nie zostanie wyliczony, wywołując metodę GetEnumerator bezpośrednio lub używając w foreach języku C# lub For Each w Visual Basic.

Metoda SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) testuje każdy element source przy użyciu elementu predicate i pomija element, jeśli wynik to true. Po powrocie false funkcji predykatu dla elementu ten element i pozostałe elementy są source zwracane i nie ma więcej wywołań predicate.

Jeśli predicate zwraca true wartość dla wszystkich elementów w sekwencji, zwracana jest pusta IEnumerable<T> wartość.

Pierwszy argument predicate reprezentuje element do przetestowania. Drugi argument reprezentuje indeks zerowy elementu w obiekcie source.

Metody TakeWhile i SkipWhile są uzupełnieniem funkcjonalnym. Biorąc pod uwagę sekwencję coll kolekcji i czystą funkcję p, łączenie wyników coll.TakeWhile(p) i coll.SkipWhile(p) zwraca tę samą sekwencję co coll.

W składni wyrażenia zapytania języka Visual Basic klauzula Skip While tłumaczy się na wywołanie SkipWhileelementu .

Zobacz też

Dotyczy

.NET 9 i inne wersje
Produkt Wersje
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0