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>)
- 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.
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
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 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 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 Take While
-Klausel in einen Aufruf von TakeWhileübersetzt.
Weitere Informationen
Gilt für:
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
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
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 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 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 Take While
-Klausel in einen Aufruf von TakeWhileübersetzt.