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>)

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.

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 sie verwenden TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) , um Elemente vom Anfang einer Sequenz zurückzugeben, solange eine Bedingung, die den Index des Elements verwendet, true 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 von source und ergibt das -Element, 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 testde 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:

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

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 sie verwenden TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) , um Elemente vom Anfang einer Sequenz zurückzugeben, solange eine Bedingung true 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 von source und ergibt das -Element, 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: