Enumerable.TakeWhile Yöntem

Tanım

Belirtilen koşul doğru olduğu sürece bir dizideki öğeleri döndürür ve ardından kalan öğeleri atlar.Returns elements from a sequence as long as a specified condition is true, and then skips the remaining elements.

Aşırı Yüklemeler

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

Belirtilen koşul doğru olduğu sürece bir dizideki öğeleri döndürür.Returns elements from a sequence as long as a specified condition is true.

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

Belirtilen koşul doğru olduğu sürece bir dizideki öğeleri döndürür.Returns elements from a sequence as long as a specified condition is true. Öğenin dizini koşul işlevinin mantığında kullanılır.The element's index is used in the logic of the predicate function.

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

Belirtilen koşul doğru olduğu sürece bir dizideki öğeleri döndürür.Returns elements from a sequence as long as a specified condition is true.

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)

Tür Parametreleri

TSource

Öğelerinin türü source .The type of the elements of source.

Parametreler

source
IEnumerable<TSource>

Öğelerin döndürülme sırası.A sequence to return elements from.

predicate
Func<TSource,Boolean>

Her öğeyi bir koşula göre test etmek için bir işlev.A function to test each element for a condition.

Döndürülenler

IEnumerable<TSource>

IEnumerable<T>Testin artık geçtiği öğeden önce gerçekleşen Giriş dizisindeki öğeleri içeren bir.An IEnumerable<T> that contains the elements from the input sequence that occur before the element at which the test no longer passes.

Özel durumlar

source ya predicate da null .source or predicate is null.

Örnekler

Aşağıdaki kod örneği, bir TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) koşul doğru olduğu sürece öğelerin başından başlayarak öğeleri döndürmek için nasıl kullanılacağını gösterir.The following code example demonstrates how to use TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) to return elements from the start of a sequence as long as a condition is true.

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

Açıklamalar

Bu yöntem ertelenmiş yürütme kullanılarak uygulanır.This method is implemented by using deferred execution. Anında dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir.The immediate return value is an object that stores all the information that is required to perform the action. Bu yöntem tarafından temsil edilen sorgu, nesne GetEnumerator yöntemi doğrudan çağırarak ya da foreach Visual C# ' de veya Visual Basic kullanılarak numaralandırılana kadar yürütülmez For Each .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 Visual C# or For Each in Visual Basic.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)Yöntemi öğesini kullanarak her öğesini sınar source predicate ve sonuç ise öğesini oluşturur true .The TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) method tests each element of source by using predicate and yields the element if the result is true. Numaralandırma, koşul işlevi false bir öğe için döndürüldüğünde veya source daha fazla öğe içerkalmadığında duraklar.Enumeration stops when the predicate function returns false for an element or when source contains no more elements.

TakeWhileVe SkipWhile yöntemleri fonksiyonel tamamlar.The TakeWhile and SkipWhile methods are functional complements. Bir dizi coll ve saf işlev verildiğinde p , sonuçlarını birleştirerek coll.TakeWhile(p) ve ile coll.SkipWhile(p) aynı diziyi verir coll .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.

Sorgu ifadesi söz dizimi Visual Basic, Take While yan tümce bir çağrısına çevrilir TakeWhile .In Visual Basic query expression syntax, a Take While clause translates to an invocation of TakeWhile.

Ayrıca bkz.

Şunlara uygulanır

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

Belirtilen koşul doğru olduğu sürece bir dizideki öğeleri döndürür.Returns elements from a sequence as long as a specified condition is true. Öğenin dizini koşul işlevinin mantığında kullanılır.The element's index is used in the logic of the predicate function.

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)

Tür Parametreleri

TSource

Öğelerinin türü source .The type of the elements of source.

Parametreler

source
IEnumerable<TSource>

Öğelerin döndürülme sırası.The sequence to return elements from.

predicate
Func<TSource,Int32,Boolean>

Her kaynak öğeyi bir koşul için test etmek üzere bir işlev; işlevin ikinci parametresi, kaynak öğenin dizinini temsil eder.A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

Döndürülenler

IEnumerable<TSource>

IEnumerable<T>Testin artık geçtiği öğeden önce gerçekleşen Giriş dizisindeki öğeleri içeren bir.An IEnumerable<T> that contains elements from the input sequence that occur before the element at which the test no longer passes.

Özel durumlar

source ya predicate da null .source or predicate is null.

Örnekler

Aşağıdaki kod örneği, TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) öğenin dizinini kullanan bir koşul true olduğu sürece öğelerin başından başlayarak öğeleri döndürmek için nasıl kullanılacağını gösterir.The following code example demonstrates how to use TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,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
*/
' 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

Açıklamalar

Bu yöntem ertelenmiş yürütme kullanılarak uygulanır.This method is implemented by using deferred execution. Anında dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir.The immediate return value is an object that stores all the information that is required to perform the action. Bu yöntem tarafından temsil edilen sorgu, nesne GetEnumerator yöntemi doğrudan çağırarak ya da foreach Visual C# ' de veya Visual Basic kullanılarak numaralandırılana kadar yürütülmez For Each .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 Visual C# or For Each in Visual Basic.

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)Yöntemi öğesini kullanarak her öğesini sınar source predicate ve sonuç ise öğesini oluşturur true .The TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) method tests each element of source by using predicate and yields the element if the result is true. Numaralandırma, koşul işlevi false bir öğe için döndürüldüğünde veya source daha fazla öğe içerkalmadığında duraklar.Enumeration stops when the predicate function returns false for an element or when source contains no more elements.

Öğesinin ilk bağımsız değişkeni, predicate sınanacak öğeyi temsil eder.The first argument of predicate represents the element to test. İkinci bağımsız değişken, içindeki öğesinin sıfır tabanlı dizinini temsil eder source .The second argument represents the zero-based index of the element within source.

TakeWhileVe SkipWhile yöntemleri fonksiyonel tamamlar.The TakeWhile and SkipWhile methods are functional complements. Bir dizi coll ve saf işlev verildiğinde p , sonuçlarını birleştirerek coll.TakeWhile(p) ve ile coll.SkipWhile(p) aynı diziyi verir coll .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.

Sorgu ifadesi söz dizimi Visual Basic, Take While yan tümce bir çağrısına çevrilir TakeWhile .In Visual Basic query expression syntax, a Take While clause translates to an invocation of TakeWhile.

Ayrıca bkz.

Şunlara uygulanır