Enumerable.TakeWhile Metoda

Definicja

Zwraca elementy z sekwencji, o ile określony warunek jest spełniony, a następnie pomija pozostałe elementy.

Przeciążenia

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

Zwraca elementy z sekwencji, o ile określony warunek jest spełniony. Indeks elementu jest używany w logice funkcji predykatu.

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

Zwraca elementy z sekwencji, o ile określony warunek jest spełniony.

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

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

Zwraca elementy z sekwencji, o ile określony warunek jest spełniony. Indeks elementu jest używany w logice funkcji predykatu.

C#
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<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>

Sekwencja zwracania elementów z.

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, które występują przed elementem, w którym test nie przechodzi już pomyślnie.

Wyjątki

source lub predicate to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) funkcji zwracania elementów od początku sekwencji, o ile warunek używający indeksu elementu ma wartość true.

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

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 TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) testuje każdy element source przy użyciu polecenia predicate i zwraca element, jeśli wynik to true. Wyliczenie zatrzymuje się, gdy funkcja predykatu zwraca false element lub gdy source nie zawiera więcej elementów.

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 Take While tłumaczy się na wywołanie TakeWhileelementu .

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

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

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

Zwraca elementy z sekwencji, o ile określony warunek jest spełniony.

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

Parametry typu

TSource

Typ elementów elementu source.

Parametry

source
IEnumerable<TSource>

Sekwencja zwracająca elementy z.

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, które występują przed elementem, w którym test nie przechodzi już pomyślnie.

Wyjątki

source lub predicate to null.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) funkcji zwracania elementów od początku sekwencji, o ile warunek jest spełniony.

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

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 TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) testuje każdy element source przy użyciu polecenia predicate i zwraca element, jeśli wynik to true. Wyliczenie zatrzymuje się, gdy funkcja predykatu zwraca false element lub gdy source nie zawiera więcej elementów.

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 Take While tłumaczy się na wywołanie TakeWhileelementu .

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