Enumerable.TakeWhile Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.
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)
Parametry typu
- TSource
Typ elementów elementu source
.
Parametry
- source
- IEnumerable<TSource>
Sekwencja zwracania elementów z.
Funkcja do testowania każdego elementu źródłowego dla warunku; drugi parametr funkcji reprezentuje indeks elementu źródłowego.
Zwraca
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.
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
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
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.
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)
Parametry typu
- TSource
Typ elementów elementu source
.
Parametry
- source
- IEnumerable<TSource>
Sekwencja zwracająca elementy z.
Zwraca
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.
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
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 .