Enumerable.TakeWhile Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar, lalu melompati elemen yang tersisa.
Overload
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar. Indeks elemen digunakan dalam logika fungsi predikat. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar. |
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Sumber:
- Take.cs
- Sumber:
- Take.cs
- Sumber:
- Take.cs
Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar. 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.
Fungsi untuk menguji setiap elemen sumber untuk suatu kondisi; parameter kedua fungsi mewakili indeks elemen sumber.
Mengembalikan
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 metodenya 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 lebih banyak elemen.
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 p
murni , menggabungkan hasil coll.TakeWhile(p)
dan coll.SkipWhile(p)
menghasilkan urutan yang sama dengan coll
.
Dalam sintaks ekspresi kueri Visual Basic, Take While
klausa diterjemahkan ke pemanggilan TakeWhile.
Lihat juga
Berlaku untuk
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Sumber:
- Take.cs
- Sumber:
- Take.cs
- Sumber:
- Take.cs
Mengembalikan elemen dari urutan selama kondisi yang ditentukan benar.
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.
Mengembalikan
IEnumerable<T> yang 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 kondisi 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 metodenya 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 lebih banyak elemen.
Metode TakeWhile dan SkipWhile adalah pelengkap fungsi. Mengingat urutan coll
koleksi dan fungsi p
murni , menggabungkan hasil coll.TakeWhile(p)
dan coll.SkipWhile(p)
menghasilkan urutan yang sama dengan coll
.
Dalam sintaks ekspresi kueri Visual Basic, Take While
klausa diterjemahkan ke pemanggilan TakeWhile.