Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Enumerable.TakeWhile<TSource> méthode (IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

 

Date de publication : novembre 2016

Retourne des éléments d’une séquence tant qu’une 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.

Espace de noms:   System.Linq
Assembly:  System.Core (dans System.Core.dll)

public static IEnumerable<TSource> TakeWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

Paramètres

source
Type: System.Collections.Generic.IEnumerable<TSource>

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

predicate
Type: System.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.

Valeur de retour

Type: System.Collections.Generic.IEnumerable<TSource>

Un 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.

Paramètres de type

TSource

Le type des éléments de source.

Exception Condition
ArgumentNullException

source ou predicate a la valeur null.

Cette méthode est implémentée à l’aide de l’exécution différée. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet est énumérée en appelant son GetEnumerator méthode directement ou à l’aide de foreach dans Visual C# ou For Each dans Visual Basic.

Le TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) méthode teste chaque élément de source à l’aide de predicate et retourne l’élément si le résultat est true. Énumération s’arrête lorsque la fonction de prédicat retourne false pour un élément ou lorsque source 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.

Le TakeWhile et SkipWhile méthodes sont des compléments fonctionnels. Reçoit une séquence coll et une fonction pure p, les résultats de concaténation de coll.TakeWhile(p) et coll.SkipWhile(p) génère la même séquence que coll.

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

L’exemple de code suivant montre comment utiliser TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) pour retourner des éléments à partir du début d’une séquence tant qu’une condition qui utilise l’index de l’élément a la valeur true.

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

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 3.5
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: