Enumerable.SkipWhile Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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>)
- Quelle:
- Skip.cs
- Quelle:
- Skip.cs
- Quelle:
- Skip.cs
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
Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.
Gibt zurück
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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Elemente eines Arrays übersprungen werden, solange eine Bedingung wahr 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 source
mit predicate
und überspringt das -Element, wenn das Ergebnis ist true
. Nachdem die Prädikatfunktion für ein Element zurückgegeben wird 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 p
ergibt 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>)
- Quelle:
- Skip.cs
- Quelle:
- Skip.cs
- Quelle:
- Skip.cs
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
Eine Funktion zum Überprüfen jedes Quellelements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Quellelements dar.
Gibt zurück
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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Elemente eines Arrays übersprungen werden, solange eine Bedingung, die vom Index des Elements abhängt, wahr 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 source
mit predicate
und überspringt das -Element, wenn das Ergebnis ist true
. Nachdem die Prädikatfunktion für ein Element zurückgegeben wird 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 testende Element dar. Das zweite Argument stellt den nullbasierten Index des -Elements in source
dar.
Die TakeWhile Methoden und SkipWhile sind funktionale Ergänzungen. Bei einer Auflistungssequenz coll
und einer reinen Funktion p
ergibt 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.