Enumerable.SkipWhile Yöntem

Tanım

Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür.

Aşırı Yüklemeler

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

Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür.

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

Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür. öğesinin dizini koşul işlevinin mantığında kullanılır.

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

Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs

Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IEnumerable<TSource>

IEnumerable<T> Öğesinden öğe döndürülecek.

predicate
Func<TSource,Boolean>

Bir koşul için her öğeyi test etmek için bir işlev.

Döndürülenler

IEnumerable<TSource>

IEnumerable<T> tarafından predicatebelirtilen testi geçmeyen doğrusal serinin ilk öğesinden başlayarak giriş dizisindeki öğeleri içeren bir.

Özel durumlar

source veya predicate şeklindedir null.

Örnekler

Aşağıdaki kod örneği, bir koşul true olduğu sürece dizinin öğelerini atlamak için nasıl kullanılacağını SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) gösterir.

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

Açıklamalar

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) yöntemi, ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.

Bu yöntem kullanarak source her öğesini predicate test eder ve sonuç ise trueöğesini atlar. Koşul işlevi bir öğe için döndürdüğünde false , bu öğe ve içindeki source kalan öğeler döndürülüp çağrısı predicateyapılmaz.

Dizideki tüm öğeler için döndürürse predicatetrue boş IEnumerable<T> bir değer döndürülür.

TakeWhile ve SkipWhile yöntemleri işlevsel tamamlayıcılardır. Bir koleksiyon dizisi coll ve saf bir işlev pverilip sonuçlarını coll.TakeWhile(p) birleştirir ve coll.SkipWhile(p) ile collaynı diziyi verir.

Visual Basic sorgu ifadesi söz diziminde Skip While yan tümcesi, SkipWhile çağrısına dönüşür.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs
Kaynak:
Skip.cs

Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür. öğesinin dizini koşul işlevinin mantığında kullanılır.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

Parametreler

source
IEnumerable<TSource>

IEnumerable<T> Öğesinden öğe döndürülecek.

predicate
Func<TSource,Int32,Boolean>

Bir koşul için her kaynak öğesini test eden bir işlev; işlevinin ikinci parametresi, kaynak öğenin dizinini temsil eder.

Döndürülenler

IEnumerable<TSource>

IEnumerable<T> tarafından predicatebelirtilen testi geçmeyen doğrusal serinin ilk öğesinden başlayarak giriş dizisindeki öğeleri içeren bir.

Özel durumlar

source veya predicate şeklindedir null.

Örnekler

Aşağıdaki kod örneği, öğenin dizinine bağlı bir koşul true olduğu sürece dizinin öğelerini atlamak için nasıl kullanılacağını SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) gösterir.

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

Açıklamalar

Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) yöntemi kullanarak öğesinin sourcepredicate her öğesini test eder ve sonuç ise trueöğesini atlar. Koşul işlevi bir öğe için döndürdüğünde false , bu öğe ve içindeki source kalan öğeler döndürülüp çağrısı predicateyapılmaz.

Dizideki tüm öğeler için döndürürse predicatetrue boş IEnumerable<T> bir değer döndürülür.

öğesinin predicate ilk bağımsız değişkeni, test yapılacak öğeyi temsil eder. İkinci bağımsız değişken içindeki sourceöğesinin sıfır tabanlı dizinini temsil eder.

TakeWhile ve SkipWhile yöntemleri işlevsel tamamlayıcılardır. Bir koleksiyon dizisi coll ve saf bir işlev pverilip sonuçlarını coll.TakeWhile(p) birleştirir ve coll.SkipWhile(p) ile collaynı diziyi verir.

Visual Basic sorgu ifadesi söz diziminde Skip While yan tümcesi, SkipWhile çağrısına dönüşür.

Ayrıca bkz.

Şunlara uygulanır