Queryable.TakeWhile Methode

Definition

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE ist, und überspringt dann die übrigen ElementeReturns elements from a sequence as long as a specified condition is true, and then skips the remaining elements.

Überlädt

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE istReturns elements from a sequence as long as a specified condition is true.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE istReturns elements from a sequence as long as a specified condition is true. In der Logik der Prädikatfunktion wird der Index des Elements verwendet.The element's index is used in the logic of the predicate function.

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>)

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE istReturns elements from a sequence as long as a specified condition is true.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Boolean))) As IQueryable(Of TSource)

Typparameter

TSource

Der Typ der Elemente von source.The type of the elements of source.

Parameter

source
IQueryable<TSource>

Die Sequenz, aus der Elemente zurückgegeben werden sollen.The sequence to return elements from.

predicate
Expression<Func<TSource,Boolean>>

Eine Funktion, mit der jedes Element auf eine Bedingung überprüft wird.A function to test each element for a condition.

Gibt zurück

IQueryable<TSource>

Ein IQueryable<T>, das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von predicate angegebene Überprüfung nicht mehr erfolgreich ist.An IQueryable<T> that contains elements from the input sequence occurring before the element at which the test specified by predicate no longer passes.

Ausnahmen

source oder predicate ist null.source or predicate is null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie verwendet TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) wird, um Elemente ab dem Anfang einer Sequenz zurückzugeben, solange eine Bedingung true ist.The following code example demonstrates how to use TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) to return elements from the start of a sequence as long as a condition is true.

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

// Take strings from the array until a string
// that is equal to "orange" is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .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
*/
Dim fruits() As String = {"apple", "banana", "mango", "orange", _
                      "passionfruit", "grape"}

' Take strings from the array until a string
' that is equal to "orange" is found.
Dim query = fruits.AsQueryable() _
    .TakeWhile(Function(fruit) String.Compare("orange", fruit, True) <> 0)

Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next

' Display the output.
MsgBox(output.ToString())

'This code produces the following output:

'apple
'banana
'mango

Hinweise

Diese Methode verfügt über mindestens einen Parameter des Typs, Expression<TDelegate> dessen Typargument einer der- Func<T,TResult> Typen ist.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben und in einen kompiliert werden Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Die- TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) Methode generiert einen, der den MethodCallExpression Aufruf von TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) sich selbst als konstruierte generische Methode darstellt.The TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) method generates a MethodCallExpression that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) itself as a constructed generic method. Anschließend übergibt Sie MethodCallExpression an die- CreateQuery(Expression) Methode des, das IQueryProvider durch die- Provider Eigenschaft des- source Parameters dargestellt wird.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Das Abfrage Verhalten, das auftritt, wenn eine Ausdrucks Baumstruktur ausgeführt wird, die den Aufruf von darstellt, TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) hängt von der Implementierung des Typs des source Parameters ab.The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) depends on the implementation of the type of the source parameter. Das erwartete Verhalten ist, dass es für predicate jedes Element in gilt, source bis ein Element gefunden wird, das predicate zurückgibt false .The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. Bis zu diesem Punkt werden alle Elemente zurückgegeben.It returns all the elements up until that point.

Gilt für:

TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>)

Gibt Elemente aus einer Sequenz zurück, solange eine angegebene Bedingung TRUE istReturns elements from a sequence as long as a specified condition is true. In der Logik der Prädikatfunktion wird der Index des Elements verwendet.The element's index is used in the logic of the predicate function.

public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IQueryable<TSource> ^ TakeWhile(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, int, bool> ^> ^ predicate);
public static System.Linq.IQueryable<TSource> TakeWhile<TSource> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,int,bool>> predicate);
static member TakeWhile : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, int, bool>> -> System.Linq.IQueryable<'Source>
<Extension()>
Public Function TakeWhile(Of TSource) (source As IQueryable(Of TSource), predicate As Expression(Of Func(Of TSource, Integer, Boolean))) As IQueryable(Of TSource)

Typparameter

TSource

Der Typ der Elemente von source.The type of the elements of source.

Parameter

source
IQueryable<TSource>

Die Sequenz, aus der Elemente zurückgegeben werden sollen.The sequence to return elements from.

predicate
Expression<Func<TSource,Int32,Boolean>>

Eine Funktion zum Überprüfen jedes Elements auf eine Bedingung. Der zweite Parameter der Funktion stellt den Index des Elements in der Quellsequenz dar.A function to test each element for a condition; the second parameter of the function represents the index of the element in the source sequence.

Gibt zurück

IQueryable<TSource>

Ein IQueryable<T>, das Elemente aus der Eingabesequenz enthält, die vor dem Element auftreten, bei dem die von predicate angegebene Überprüfung nicht mehr erfolgreich ist.An IQueryable<T> that contains elements from the input sequence occurring before the element at which the test specified by predicate no longer passes.

Ausnahmen

source oder predicate ist null.source or predicate is null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie verwendet TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) wird, um Elemente vom Anfang einer Sequenz zurückzugeben, solange eine Bedingung, die den Index des-Elements verwendet, true ist.The following code example demonstrates how to use TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) to return elements from the start of a sequence as long as a condition that uses the index of the element is true.

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

// Take strings from the array until a string whose length
// is less than its index in the array is found.
IEnumerable<string> query =
    fruits.AsQueryable()
    .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
*/
Dim fruits() As String = _
    {"apple", "passionfruit", "banana", "mango", _
     "orange", "blueberry", "grape", "strawberry"}

' Take strings from the array until a string whose length
' is less than its index in the array is found.
Dim query = fruits.AsQueryable() _
    .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
MsgBox(output.ToString())

' This code produces the following output:

' apple
' passionfruit
' banana
' mango
' orange
' blueberry

Hinweise

Diese Methode verfügt über mindestens einen Parameter des Typs, Expression<TDelegate> dessen Typargument einer der- Func<T,TResult> Typen ist.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben und in einen kompiliert werden Expression<TDelegate> .For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

Die- TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) Methode generiert einen, der den MethodCallExpression Aufruf von TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) sich selbst als konstruierte generische Methode darstellt.The TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) method generates a MethodCallExpression that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) itself as a constructed generic method. Anschließend übergibt Sie MethodCallExpression an die- CreateQuery(Expression) Methode des, das IQueryProvider durch die- Provider Eigenschaft des- source Parameters dargestellt wird.It then passes the MethodCallExpression to the CreateQuery(Expression) method of the IQueryProvider represented by the Provider property of the source parameter.

Das Abfrage Verhalten, das auftritt, wenn eine Ausdrucks Baumstruktur ausgeführt wird, die den Aufruf von darstellt, TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) hängt von der Implementierung des Typs des source Parameters ab.The query behavior that occurs as a result of executing an expression tree that represents calling TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) depends on the implementation of the type of the source parameter. Das erwartete Verhalten ist, dass es für predicate jedes Element in gilt, source bis ein Element gefunden wird, das predicate zurückgibt false .The expected behavior is that it applies predicate to each element in source until it finds an element for which predicate returns false. Bis zu diesem Punkt werden alle Elemente zurückgegeben.It returns all the elements up until that point. Der Index jedes Quell Elements wird als zweites Argument für bereitgestellt predicate .The index of each source element is provided as the second argument to predicate.

Gilt für: