Lire en anglais

Partager via


Enumerable.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>(IEnumerable<TSource>, 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>(IEnumerable<TSource>, Func<TSource,Boolean>)

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

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)

Source:
Take.cs
Source:
Take.cs
Source:
Take.cs

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.

C#
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

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

predicate
Func<TSource,Int32,Boolean>

Fonction permettant de tester chaque élément source pour une condition ; le deuxième paramètre de la fonction représente l'index de l'élément source.

Retours

IEnumerable<TSource>

IEnumerable<T> qui contient les éléments de la séquence d'entrée se trouvant avant l'élément à partir duquel le test échoue.

Exceptions

source ou predicate est null.

Exemples

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

C#
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
*/

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) méthode teste chaque élément de à l’aide predicate de source et génère l’élément si le résultat est true. L’énumération s’arrête lorsque la fonction de prédicat retourne false pour un élément ou lorsque source ne contient plus d’éléments.

Le premier argument de predicate représente l’élément à tester. Le deuxième argument représente l’index de base zéro de l’élément dans source.

Les TakeWhile méthodes et SkipWhile sont des compléments fonctionnels. Compte tenu d’une séquence coll de collection et d’une fonction ppure , la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) produit la même séquence que coll.

Dans la syntaxe d’expression de requête Visual Basic, une Take While clause se traduit par un appel de TakeWhile.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)

Source:
Take.cs
Source:
Take.cs
Source:
Take.cs

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

C#
public static System.Collections.Generic.IEnumerable<TSource> TakeWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);

Paramètres de type

TSource

Le type des éléments de source.

Paramètres

source
IEnumerable<TSource>

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

predicate
Func<TSource,Boolean>

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

Retours

IEnumerable<TSource>

IEnumerable<T> qui contient les éléments de la séquence d'entrée se trouvant avant l'élément à partir duquel le test échoue.

Exceptions

source ou predicate est null.

Exemples

L’exemple de code suivant montre comment utiliser TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour retourner des éléments au début d’une séquence tant qu’une condition est vraie.

C#
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
*/

Remarques

Cette méthode est implémentée à l’aide d’une exécution différée. La valeur de retour immédiat est un objet qui stocke toutes les informations nécessaires à l’exécution de l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet n’est pas énuméré soit en appelant directement sa GetEnumerator méthode, soit en utilisant foreach en C# ou For Each en Visual Basic.

La TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) méthode teste chaque élément de à l’aide predicate de source et génère l’élément si le résultat est true. L’énumération s’arrête lorsque la fonction de prédicat retourne false pour un élément ou lorsque source ne contient plus d’éléments.

Les TakeWhile méthodes et SkipWhile sont des compléments fonctionnels. Compte tenu d’une séquence coll de collection et d’une fonction ppure , la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) produit la même séquence que coll.

Dans la syntaxe d’expression de requête Visual Basic, une Take While clause se traduit par un appel de TakeWhile.

Voir aussi

S’applique à

.NET 9 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0