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,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.

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 sie verwenden SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) , um Elemente eines Arrays zu überspringen, 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 foreach von in C# oder For Each in Visual Basic aufgezählt wird.

Diese Methode testet jedes Element von mithilfe predicate von source und überspringt das -Element, wenn das Ergebnis isttrue. Nachdem die Prädikatfunktion für ein Element zurückgegeben wurde false , 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ückgegeben true wird, wird ein leerer IEnumerable<T> zurückgegeben.

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

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

Weitere Informationen

Gilt für:

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 Elemente SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) eines Arrays mit übersprungen werden, solange eine Bedingung, die vom Index des Elements abhängt, true ist.

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 foreach von in C# oder For Each in Visual Basic aufgezählt wird.

Die SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) -Methode testet jedes Element von mithilfe predicate von source und überspringt das -Element, wenn das Ergebnis isttrue. Nachdem die Prädikatfunktion für ein Element zurückgegeben wurde false , 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ückgegeben true wird, wird ein 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 sourcedar.

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

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

Weitere Informationen

Gilt für: