Enumerable.TakeWhile Metode

Definisi

Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar, lalu melewati elemen yang tersisa.

Overload

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

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah true. Indeks elemen digunakan dalam logika fungsi predikat.

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

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah true.

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

Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah true. Indeks elemen digunakan dalam logika fungsi predikat.

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)

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

Urutan untuk mengembalikan elemen dari.

predicate
Func<TSource,Int32,Boolean>

Fungsi untuk menguji setiap elemen sumber untuk kondisi; parameter kedua fungsi mewakili indeks elemen sumber.

Mengembalikan

IEnumerable<TSource>

Yang IEnumerable<T> berisi elemen dari urutan input yang terjadi sebelum elemen di mana pengujian tidak lagi lulus.

Pengecualian

source atau predicate adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) untuk mengembalikan elemen dari awal urutan selama kondisi yang menggunakan indeks elemen adalah 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

Keterangan

Metode ini diimplementasikan dengan menggunakan eksekusi yang ditangguhkan. Nilai pengembalian langsung adalah objek yang menyimpan semua informasi yang diperlukan untuk melakukan tindakan. Kueri yang diwakili oleh metode ini tidak dijalankan sampai objek dijumlahkan baik dengan memanggil metode GetEnumerator secara langsung atau dengan menggunakan foreach di C# atau For Each di Visual Basic.

Metode ini TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) menguji setiap elemen dengan source menggunakan predicate dan menghasilkan elemen jika hasilnya adalah true. Enumerasi berhenti ketika fungsi predikat kembali false untuk elemen atau ketika source tidak berisi elemen lagi.

Argumen pertama mewakili predicate elemen yang akan diuji. Argumen kedua mewakili indeks berbasis nol dari elemen dalam source.

Metode TakeWhile dan SkipWhile adalah pelengkap fungsi. Mengingat urutan coll koleksi dan fungsi pmurni, menggabungkan hasil coll.TakeWhile(p) dan coll.SkipWhile(p) menghasilkan urutan yang sama dengan coll.

Dalam sintaks ekspresi kueri Visual Basic, klausa Take While diterjemahkan ke pemanggilan TakeWhile.

Lihat juga

Berlaku untuk

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

Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs
Sumber:
Take.cs

Mengembalikan elemen dari urutan selama kondisi yang ditentukan adalah 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)

Jenis parameter

TSource

Jenis elemen source.

Parameter

source
IEnumerable<TSource>

Urutan untuk mengembalikan elemen dari.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk kondisi.

Mengembalikan

IEnumerable<TSource>

Yang IEnumerable<T> berisi elemen dari urutan input yang terjadi sebelum elemen di mana pengujian tidak lagi lulus.

Pengecualian

source atau predicate adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) untuk mengembalikan elemen dari awal urutan selama kondisinya benar.

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

Keterangan

Metode ini diimplementasikan dengan menggunakan eksekusi yang ditangguhkan. Nilai pengembalian langsung adalah objek yang menyimpan semua informasi yang diperlukan untuk melakukan tindakan. Kueri yang diwakili oleh metode ini tidak dijalankan sampai objek dijumlahkan baik dengan memanggil metode GetEnumerator secara langsung atau dengan menggunakan foreach di C# atau For Each di Visual Basic.

Metode ini TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) menguji setiap elemen dengan source menggunakan predicate dan menghasilkan elemen jika hasilnya adalah true. Enumerasi berhenti ketika fungsi predikat kembali false untuk elemen atau ketika source tidak berisi elemen lagi.

Metode TakeWhile dan SkipWhile adalah pelengkap fungsi. Mengingat urutan coll koleksi dan fungsi pmurni, menggabungkan hasil coll.TakeWhile(p) dan coll.SkipWhile(p) menghasilkan urutan yang sama dengan coll.

Dalam sintaks ekspresi kueri Visual Basic, klausa Take While diterjemahkan ke pemanggilan TakeWhile.

Lihat juga

Berlaku untuk