Queryable.TakeWhile Méthode

Définition

Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true, puis ignore les éléments restants.

Surcharges

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

Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true.

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

Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true. L’index de l’élément est utilisé dans la logique de la fonction de prédicat.

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

Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur 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)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence à partir de laquelle retourner les éléments.

predicate
Expression<Func<TSource,Boolean>>

Fonction permettant de tester chaque élément par rapport à une condition.

Retours

IQueryable<TSource>

IQueryable<T> qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par predicate ne réussit plus.

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) retourner des éléments à partir du début d’une séquence tant qu’une condition est vraie.

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

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument de type est l’un des Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée sur un Expression<TDelegate>.

La TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un qui représente l’appel MethodCallExpression TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) d’une méthode générique construite. Il passe ensuite la MethodCallExpression CreateQuery(Expression) méthode de l’élément IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit en raison de l’exécution d’une arborescence d’expressions qui représente l’appel TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il s’applique predicate à chaque élément dans source jusqu’à ce qu’il trouve un élément pour lequel predicate retourne false. Il retourne tous les éléments jusqu’à ce point.

S’applique à

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

Retourne des éléments d'une séquence tant que la condition spécifiée a la valeur true. L’index de l’élément est utilisé dans la logique de la fonction de prédicat.

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)

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IQueryable<TSource>

Séquence à partir de laquelle retourner les éléments.

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

Fonction permettant de tester chaque élément par rapport à une condition ; le deuxième paramètre de la fonction représente l'index de l'élément dans la séquence source.

Retours

IQueryable<TSource>

IQueryable<T> qui contient les éléments de la séquence d'entrée placés avant l'élément à partir duquel le test spécifié par predicate ne réussit plus.

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) retourner des éléments à partir du début d’une séquence tant qu’une condition qui utilise l’index de l’élément est vraie.

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

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument de type est l’un des Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée sur un Expression<TDelegate>.

La TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) méthode génère un qui représente l’appel MethodCallExpression TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) d’une méthode générique construite. Il passe ensuite la MethodCallExpression CreateQuery(Expression) méthode de l’élément IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit en raison de l’exécution d’une arborescence d’expressions qui représente l’appel TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il s’applique predicate à chaque élément dans source jusqu’à ce qu’il trouve un élément pour lequel predicate retourne false. Il retourne tous les éléments jusqu’à ce point. L’index de chaque élément source est fourni comme deuxième argument à predicate.

S’applique à