Enumerable.SkipWhile Methode

Definition

Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück

Überlädt

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

Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück In der Logik der Prädikatfunktion wird der Index des Elements verwendet.

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

Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück

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

Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück In der Logik der Prädikatfunktion wird der Index des Elements verwendet.

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)

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Ein IEnumerable<T>, aus dem Elemente zurückgegeben werden sollen

predicate
Func<TSource,Int32,Boolean>

Eine Funktion zum Überprüfen jedes Quellelements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Quellelements dar.

Gibt zurück

IEnumerable<TSource>

Ein IEnumerable<T>, das die Elemente aus der Eingabesequenz ab dem ersten Element in der linearen Reihe enthält, das die in predicate angegebene Überprüfung nicht besteht

Ausnahmen

source oder predicate ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Sie verwenden, SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) um Elemente eines Arrays zu überspringen, solange eine Bedingung, die vom Index des Elements abhängt, zutrifft.

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

Hinweise

Diese Methode wird mithilfe der verzögerten Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator -Methode oder mithilfe von in Visual C# oder in Visual Basic aufzählt foreach For Each wird.

Die SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) -Methode testet jedes Element von source mithilfe von predicate und überspringt das -Element, wenn das Ergebnis true ist. Nachdem die Prädikatfunktion für ein Element zurückgegeben false wurde, werden dieses Element und die verbleibenden Elemente in source zurückgegeben, und es gibt keine weiteren Aufrufe von predicate .

Wenn predicate für alle Elemente in der Sequenz zurückgibt, wird ein true leerer IEnumerable<T> zurückgegeben.

Das erste Argument von predicate stellt das zu testde Element dar. Das zweite Argument stellt den nullbasierten Index des Elements in source dar.

Die TakeWhile Methoden und sind funktionale SkipWhile Ergänzungen. Bei einer coll Auflistungssequenz und einer reinen Funktion p ergibt die Verkettung der Ergebnisse von coll.TakeWhile(p) und die gleiche Sequenz wie coll.SkipWhile(p) coll .

In Visual Basic Skip While Abfrageausdruckssyntax wird eine -Klausel in einen Aufruf von SkipWhile übersetzt.

Siehe auch

Gilt für

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

Umgeht Elemente in einer Sequenz, solange eine angegebene Bedingung true ist, und gibt dann die übrigen Elemente zurück

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)

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Ein IEnumerable<T>, aus dem Elemente zurückgegeben werden sollen

predicate
Func<TSource,Boolean>

Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.

Gibt zurück

IEnumerable<TSource>

Ein IEnumerable<T>, das die Elemente aus der Eingabesequenz ab dem ersten Element in der linearen Reihe enthält, das die in predicate angegebene Überprüfung nicht besteht

Ausnahmen

source oder predicate ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Mithilfe SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) von Elemente eines Arrays übersprungen werden, solange eine Bedingung erfüllt ist.

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

Hinweise

Die SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) -Methode wird mithilfe der verzögerten Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen speichert, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch direktes Aufrufen der GetEnumerator -Methode oder mithilfe von in Visual C# oder in Visual Basic aufzählt foreach For Each wird.

Diese Methode testet jedes Element von source mithilfe von predicate und überspringt das -Element, wenn das Ergebnis true ist. Nachdem die Prädikatfunktion für ein Element zurückgegeben false wurde, werden dieses Element und die verbleibenden Elemente in source zurückgegeben, und es gibt keine weiteren Aufrufe von predicate .

Wenn predicate für alle Elemente in der Sequenz zurückgibt, wird ein true leerer IEnumerable<T> zurückgegeben.

Die TakeWhile Methoden und sind funktionale SkipWhile Ergänzungen. Bei einer coll Auflistungssequenz und einer reinen Funktion p ergibt die Verkettung der Ergebnisse von coll.TakeWhile(p) und die gleiche Sequenz wie coll.SkipWhile(p) coll .

In Visual Basic Skip While Abfrageausdruckssyntax wird eine -Klausel in einen Aufruf von SkipWhile übersetzt.

Siehe auch

Gilt für