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.Returns elements from a sequence as long as a specified condition is true, and then skips the remaining elements.

Surcharges

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.Returns elements from a sequence as long as a specified condition is true.

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.Returns elements from a sequence as long as a specified condition is true. L’index de l’élément est utilisé dans la logique de la fonction de prédicat.The element's index is used in the logic of the predicate function.

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.Returns elements from a sequence as long as a specified condition is true.

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

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

Séquence à partir de laquelle retourner les éléments.A sequence to return elements from.

predicate
Func<TSource,Boolean>

Fonction permettant de tester chaque élément par rapport à une condition.A function to test each element for a 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.An IEnumerable<T> that contains the elements from the input sequence that occur before the element at which the test no longer passes.

Exceptions

source ou predicate est null.source or predicate is null.

Exemples

L’exemple de code suivant montre comment utiliser TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour retourner des éléments à partir du début d’une séquence tant qu’une condition a la valeur true.The following code example demonstrates how to use TakeWhile<TSource>(IEnumerable<TSource>, 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" };

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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "banana", "mango", "orange", "passionfruit", "grape"}

' Take strings from the array until one of
' the strings matches "orange".
Dim query As IEnumerable(Of String) =
fruits.TakeWhile(Function(fruit) _
                     String.Compare("orange", fruit, True) <> 0)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' apple
' banana
' mango

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the 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 sa méthode GetEnumerator directement, soit C# en utilisant foreach dans Visual ou For Each dans Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

La méthode TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) teste chaque élément de source à l’aide de predicate et génère l’élément si le résultat est true.The TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) method tests each element of source by using predicate and yields the element if the result is 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.Enumeration stops when the predicate function returns false for an element or when source contains no more elements.

Les méthodes TakeWhile et SkipWhile sont des compléments fonctionnels.The TakeWhile and SkipWhile methods are functional complements. À partir d’une séquence coll et d’une fonction pure p, la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) produit la même séquence que coll.Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.

Dans Visual Basic syntaxe d’expression de requête, une clause Take While se traduit par un appel de TakeWhile.In Visual Basic query expression syntax, a Take While clause translates to an invocation of TakeWhile.

Voir aussi

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.Returns elements from a sequence as long as a specified condition is true. L’index de l’élément est utilisé dans la logique de la fonction de prédicat.The element's index is used in the logic of the predicate function.

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

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

Séquence à partir de laquelle retourner les éléments.The sequence to return elements from.

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.A function to test each source element for a condition; the second parameter of the function represents the index of the source element.

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.An IEnumerable<T> that contains elements from the input sequence that occur before the element at which the test no longer passes.

Exceptions

source ou predicate est null.source or predicate is null.

Exemples

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.The following code example demonstrates how to use TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) to return elements from the start of a sequence as long as a condition that uses the element's index is 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
*/
' Create an array of strings.
Dim fruits() As String =
{"apple", "passionfruit", "banana", "mango",
 "orange", "blueberry", "grape", "strawberry"}

' Take strings from the array until one
' of the string's lengths is greater than or
' equal to the string item's index in the array.
Dim query As IEnumerable(Of String) =
fruits.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
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' apple
' passionfruit
' banana
' mango
' orange
' blueberry

Remarques

Cette méthode est implémentée à l’aide de l’exécution différée.This method is implemented by using deferred execution. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer l’action.The immediate return value is an object that stores all the information that is required to perform the 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 sa méthode GetEnumerator directement, soit C# en utilisant foreach dans Visual ou For Each dans Visual Basic.The query represented by this method is not executed until the object is enumerated either by calling its GetEnumerator method directly or by using foreach in Visual C# or For Each in Visual Basic.

La méthode TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) teste chaque élément de source à l’aide de predicate et génère l’élément si le résultat est true.The TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) method tests each element of source by using predicate and yields the element if the result is 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.Enumeration stops when the predicate function returns false for an element or when source contains no more elements.

Le premier argument de predicate représente l’élément à tester.The first argument of predicate represents the element to test. Le deuxième argument représente l’index de base zéro de l’élément dans source.The second argument represents the zero-based index of the element within source.

Les méthodes TakeWhile et SkipWhile sont des compléments fonctionnels.The TakeWhile and SkipWhile methods are functional complements. À partir d’une séquence coll et d’une fonction pure p, la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) produit la même séquence que coll.Given a sequence coll and a pure function p, concatenating the results of coll.TakeWhile(p) and coll.SkipWhile(p) yields the same sequence as coll.

Dans Visual Basic syntaxe d’expression de requête, une clause Take While se traduit par un appel de TakeWhile.In Visual Basic query expression syntax, a Take While clause translates to an invocation of TakeWhile.

Voir aussi

S’applique à