Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Enumerable.SkipWhile<TSource>-Methode: (IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

 

Veröffentlicht: Oktober 2016

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.

Namespace:   System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IEnumerable<TSource> SkipWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Parameter

source
Type: System.Collections.Generic.IEnumerable<TSource>

Ein IEnumerable<T> aus dem Elemente zurückgegeben.

predicate
Type: System.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.

Rückgabewert

Type: System.Collections.Generic.IEnumerable<TSource>

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

Typparameter

TSource

Der Typ der Elemente von source.

Exception Condition
ArgumentNullException

source oder predicate ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen gespeichert hat, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird nicht ausgeführt, bis das Objekt aufgelistet wird, entweder durch Aufrufen der GetEnumerator -Methode direkt oder mithilfe von foreach in Visual C# oder For Each in Visual Basic.

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

Wenn predicate gibt true für alle Elemente in der Sequenz eine leere IEnumerable<T> zurückgegeben.

Das erste Argument der predicate darstellt, das zu testende Element. Das zweite Argument stellt den nullbasierten Index des Elements in source.

Die TakeWhile und SkipWhile -Methode sind funktionale Komplemente. Ein Sequenz- coll und eine reine Funktion p, Verketten der Ergebnisse von coll.TakeWhile(p) und coll.SkipWhile(p) ergibt die gleiche Sequenz wie coll.

In Visual Basic Abfragen Ausdruckssyntax, ein Skip While -Klausel übersetzt in einen Aufruf von SkipWhile.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) Elemente eines Arrays übersprungen werden, solange eine Bedingung, die abhängig von der Index des Elements auf "true" festgelegt 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
*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: