Auf Englisch lesen

Freigeben über


Enumerable.TakeWhile Methode

Definition

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist, und überspringt dann die übrigen Elemente

Überlädt

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

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist In der Logik der Prädikatfunktion wird der Index des Elements verwendet.

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

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist

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

Quelle:
Take.cs
Quelle:
Take.cs
Quelle:
Take.cs

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist In der Logik der Prädikatfunktion wird der Index des Elements verwendet.

C#
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Die Sequenz, aus der 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 Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die Überprüfung nicht mehr erfolgreich ist

Ausnahmen

source oder predicate ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Elemente vom Anfang einer Sequenz zurückgegeben werden, solange eine Bedingung, die den Index des Elements verwendet, wahr ist.

C#
string[] fruits = { "apple", "passionfruit", "banana", "mango",
                      "orange", "blueberry", "grape", "strawberry" };

IEnumerable<string> query =
    fruits.TakeWhile((fruit, index) => fruit.Length >= index);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
 This code produces the following output:

 apple
 passionfruit
 banana
 mango
 orange
 blueberry
*/

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 TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) -Methode testet jedes Element von mithilfe predicate und source gibt das -Element ab, wenn das Ergebnis isttrue. Die Enumeration wird beendet, wenn die Prädikatfunktion für ein Element zurückgibt false oder keine source weiteren Elemente enthält.

Das erste Argument von predicate stellt das zu testende 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 Take While -Klausel in einen Aufruf von TakeWhileübersetzt.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Quelle:
Take.cs
Quelle:
Take.cs
Quelle:
Take.cs

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist

C#
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Typparameter

TSource

Der Typ der Elemente von source.

Parameter

source
IEnumerable<TSource>

Eine Sequenz, aus der 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 enthält, die vor dem Element auftreten, bei dem die Überprüfung nicht mehr erfolgreich ist

Ausnahmen

source oder predicate ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Elemente vom Anfang einer Sequenz zurückgegeben werden, solange eine Bedingung wahr ist.

C#
string[] fruits = { "apple", "banana", "mango", "orange",
                      "passionfruit", "grape" };

IEnumerable<string> query =
    fruits.TakeWhile(fruit => String.Compare("orange", fruit, true) != 0);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
 This code produces the following output:

 apple
 banana
 mango
*/

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 TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) -Methode testet jedes Element von mithilfe predicate und source gibt das -Element ab, wenn das Ergebnis isttrue. Die Enumeration wird beendet, wenn die Prädikatfunktion für ein Element zurückgibt false oder keine source weiteren Elemente enthält.

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 Take While -Klausel in einen Aufruf von TakeWhileübersetzt.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0