Bagikan melalui


Enumerable.SkipWhile Metode

Definisi

Melewati elemen secara berurutan selama kondisi yang ditentukan benar lalu mengembalikan elemen yang tersisa.

Overload

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

Melewati elemen secara berurutan selama kondisi yang ditentukan benar lalu mengembalikan elemen yang tersisa.

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

Melewati elemen secara berurutan selama kondisi yang ditentukan benar lalu mengembalikan elemen yang tersisa. Indeks elemen digunakan dalam logika fungsi predikat.

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

Sumber:
Skip.cs
Sumber:
Skip.cs
Sumber:
Skip.cs

Melewati elemen secara berurutan selama kondisi yang ditentukan benar lalu mengembalikan elemen yang tersisa.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(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>

Untuk IEnumerable<T> mengembalikan elemen dari.

predicate
Func<TSource,Boolean>

Fungsi untuk menguji setiap elemen untuk suatu kondisi.

Mengembalikan

IEnumerable<TSource>

IEnumerable<T> Yang berisi elemen dari urutan input yang dimulai pada elemen pertama dalam seri linier yang tidak lulus pengujian yang ditentukan oleh predicate.

Pengecualian

source atau predicate adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) untuk melewati elemen array selama kondisinya benar.

int[] grades = { 59, 82, 70, 56, 92, 98, 85 };

IEnumerable<int> lowerGrades =
    grades
    .OrderByDescending(grade => grade)
    .SkipWhile(grade => grade >= 80);

Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
{
    Console.WriteLine(grade);
}

/*
 This code produces the following output:

 All grades below 80:
 70
 59
 56
*/
' Create an array of integers that represent grades.
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}

' Sort the grades in descending order and
' get all grades greater less than 80.
Dim lowerGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(grade) grade) _
.SkipWhile(Function(grade) grade >= 80)

' Display the results.
Dim output As New System.Text.StringBuilder("All grades below 80:" & vbCrLf)
For Each grade As Integer In lowerGrades
    output.AppendLine(grade)
Next
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' All grades below 80:
' 70
' 59
' 56

Keterangan

Metode SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) 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 menguji setiap elemen dengan source menggunakan predicate dan melewati elemen jika hasilnya adalah true. Setelah fungsi predikat kembali false untuk elemen, elemen tersebut dan elemen yang tersisa di source dihasilkan dan tidak ada lagi pemanggilan predicate.

Jika predicate mengembalikan true untuk semua elemen dalam urutan, kosong IEnumerable<T> akan dikembalikan.

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, Skip While klausa diterjemahkan ke pemanggilan SkipWhile.

Lihat juga

Berlaku untuk

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

Sumber:
Skip.cs
Sumber:
Skip.cs
Sumber:
Skip.cs

Melewati elemen secara berurutan selama kondisi yang ditentukan benar lalu mengembalikan elemen yang tersisa. Indeks elemen digunakan dalam logika fungsi predikat.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(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>

Untuk IEnumerable<T> mengembalikan elemen dari.

predicate
Func<TSource,Int32,Boolean>

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

Mengembalikan

IEnumerable<TSource>

IEnumerable<T> Yang berisi elemen dari urutan input yang dimulai pada elemen pertama dalam seri linier yang tidak lulus pengujian yang ditentukan oleh predicate.

Pengecualian

source atau predicate adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) untuk melewati elemen array selama kondisi yang bergantung pada indeks elemen adalah true.

int[] amounts = { 5000, 2500, 9000, 8000,
                    6500, 4000, 1500, 5500 };

IEnumerable<int> query =
    amounts.SkipWhile((amount, index) => amount > index * 1000);

foreach (int amount in query)
{
    Console.WriteLine(amount);
}

/*
 This code produces the following output:

 4000
 1500
 5500
*/
' Create an array of integers.
Dim amounts() As Integer =
{5000, 2500, 9000, 8000, 6500, 4000, 1500, 5500}

' Skip items in the array whose value is greater than
' the item's index times 1000; get the remaining items.
Dim query As IEnumerable(Of Integer) =
amounts.SkipWhile(Function(amount, index) _
                      amount > index * 1000)

' Output the results.
Dim output As New System.Text.StringBuilder
For Each amount As Integer In query
    output.AppendLine(amount)
Next
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' 4000
' 1500
' 5500

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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) menguji setiap elemen dengan source menggunakan predicate dan melewati elemen jika hasilnya adalah true. Setelah fungsi predikat kembali false untuk elemen, elemen tersebut dan elemen yang tersisa di source dihasilkan dan tidak ada lagi pemanggilan predicate.

Jika predicate mengembalikan true untuk semua elemen dalam urutan, kosong IEnumerable<T> akan dikembalikan.

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, Skip While klausa diterjemahkan ke pemanggilan SkipWhile.

Lihat juga

Berlaku untuk