Enumerable.SkipWhile Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen koşul true olduğu sürece bir dizideki öğeleri atlar ve sonra kalan öğeleri döndürür.
Aşırı Yüklemeler
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. Öğenin 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
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 source
türü.
Parametreler
- source
- IEnumerable<TSource>
Öğesinden IEnumerable<T> öğeleri döndürmek için.
Döndürülenler
IEnumerable<T> tarafından belirtilen predicate
testi geçirmeyen doğrusal serideki ilk öğeden 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 ertelenmiş yürütme kullanılarak uygulanır. Anında dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne numaralandırılana kadar yürütülür.
Bu yöntem kullanarak predicate
öğesinin source
her bir öğ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ı predicate
yapılmaz.
Dizideki tüm öğeler için döndürürse predicate
true
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 p
verilip sonuçlarını coll.TakeWhile(p)
birleştirir ve coll.SkipWhile(p)
ile coll
aynı diziyi verir.
Visual Basic sorgu ifadesi söz diziminde yan Skip While
tümcesi çağrısına çevrilir SkipWhile.
Ayrıca bkz.
Şunlara uygulanır
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- 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. Öğenin 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 source
türü.
Parametreler
- source
- IEnumerable<TSource>
Öğesinden IEnumerable<T> öğeleri döndürmek için.
Bir koşul için her kaynak öğeyi test etmek için bir işlev; işlevinin ikinci parametresi, kaynak öğenin dizinini temsil eder.
Döndürülenler
IEnumerable<T> tarafından belirtilen predicate
testi geçirmeyen doğrusal serideki ilk öğeden 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 ertelenmiş yürütme kullanılarak uygulanır. Anında dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, doğrudan yöntemini çağırarak GetEnumerator
veya C# içinde veya For Each
Visual Basic'te kullanarak foreach
nesne numaralandırılana kadar yürütülür.
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) yöntemi kullanarak predicate
öğesinin source
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ı predicate
yapılmaz.
Dizideki tüm öğeler için döndürürse predicate
true
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 p
verilip sonuçlarını coll.TakeWhile(p)
birleştirir ve coll.SkipWhile(p)
ile coll
aynı diziyi verir.
Visual Basic sorgu ifadesi söz diziminde yan Skip While
tümcesi çağrısına çevrilir SkipWhile.