Partager via


Queryable.TakeWhile Méthode

Définition

Retourne des éléments d’une séquence tant qu’une condition spécifiée est vraie, puis ignore les éléments restants.

Surcharges

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

Retourne des éléments d’une séquence tant qu’une condition spécifiée est vraie.

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

Retourne des éléments d’une séquence tant qu’une condition spécifiée est vraie. 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>>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Retourne des éléments d’une séquence tant qu’une condition spécifiée est vraie.

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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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

Type des éléments de source.

Paramètres

source
IQueryable<TSource>

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

predicate
Expression<Func<TSource,Boolean>>

Fonction permettant de tester chaque élément pour une condition.

Retours

IQueryable<TSource>

Qui IQueryable<T> contient des éléments de la séquence d’entrée se produisant avant l’élément auquel le test spécifié ne predicate réussit plus.

Attributs

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment retourner TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) 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 à un Expression<TDelegate>.

La TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) méthode génère un qui représente l’appel MethodCallExpressionTakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Boolean>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit suite à 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 jusqu’à source ce qu’il trouve un élément pour lequel predicate retourne false. Elle retourne tous les éléments jusqu’à ce point.

S’applique à

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Retourne des éléments d’une séquence tant qu’une condition spécifiée est vraie. 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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

Type des éléments de source.

Paramètres

source
IQueryable<TSource>

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

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

Fonction permettant de tester chaque élément pour 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>

Qui IQueryable<T> contient des éléments de la séquence d’entrée se produisant avant l’élément auquel le test spécifié ne predicate réussit plus.

Attributs

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment retourner TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) 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 à un Expression<TDelegate>.

La TakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) méthode génère un qui représente l’appel MethodCallExpressionTakeWhile<TSource>(IQueryable<TSource>, Expression<Func<TSource,Int32,Boolean>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery(Expression) méthode de l’objet IQueryProvider représenté par la Provider propriété du source paramètre.

Le comportement de requête qui se produit suite à 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 jusqu’à source ce qu’il trouve un élément pour lequel predicate retourne false. Elle retourne tous les éléments jusqu’à ce point. L’index de chaque élément source est fourni en tant que deuxième argument à predicate.

S’applique à