Enumerable.TakeWhile 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.
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>)
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.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(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>
Die Sequenz, aus der 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
- 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.
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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "passionfruit", "banana", "mango",
"orange", "blueberry", "grape", "strawberry"}
' Take strings from the array until one
' of the string's lengths is greater than or
' equal to the string item's index in the array.
Dim query As IEnumerable(Of String) =
fruits.TakeWhile(Function(fruit, index) _
fruit.Length >= index)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())
' 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 durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder direkt oder in foreach
Visual C# oder For Each
in Visual Basic aufgerufen wirdGetEnumerator
.
Die TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) Methode überprüft jedes Element source
mithilfe predicate
und gibt das Element ab, wenn das Ergebnis ist true
. Aufzählungsstopps, wenn die Prädikatfunktion false
für ein Element zurückgibt oder source
wenn keine weiteren Elemente enthalten sind.
Das erste Argument, das predicate
das zu testende Element darstellt. Das zweite Argument stellt den nullbasierten Index des Elements innerhalb source
dar.
SkipWhile Die Und Methoden TakeWhile sind funktionsbezogene Ergänzungen. Aufgrund einer Auflistungssequenz coll
und einer reinen Funktion p
werden die Ergebnisse coll.TakeWhile(p)
verkettet und coll.SkipWhile(p)
die gleiche Sequenz wie coll
.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Take While
Klausel in eine Aufrufung.TakeWhile
Siehe auch
Gilt für
TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ TakeWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member TakeWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function TakeWhile(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>
Eine Sequenz, aus der Elemente zurückgegeben werden sollen
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.
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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}
' Take strings from the array until one of
' the strings matches "orange".
Dim query As IEnumerable(Of String) =
fruits.TakeWhile(Function(fruit) _
String.Compare("orange", fruit, True) <> 0)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())
' 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 durch diese Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder direkt oder in foreach
Visual C# oder For Each
in Visual Basic aufgerufen wirdGetEnumerator
.
Die TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) Methode überprüft jedes Element source
mithilfe predicate
und gibt das Element ab, wenn das Ergebnis ist true
. Aufzählungsstopps, wenn die Prädikatfunktion false
für ein Element zurückgibt oder source
wenn keine weiteren Elemente enthalten sind.
SkipWhile Die Und Methoden TakeWhile sind funktionsbezogene Ergänzungen. Aufgrund einer Auflistungssequenz coll
und einer reinen Funktion p
werden die Ergebnisse coll.TakeWhile(p)
verkettet und coll.SkipWhile(p)
die gleiche Sequenz wie coll
.
In Visual Basic Abfrageausdruckssyntax übersetzt eine Take While
Klausel in eine Aufrufung.TakeWhile