Enumerable.TakeWhile Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.
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
.
Paramètres
- source
- IEnumerable<TSource>
Séquence à partir de laquelle retourner les éléments.
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<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.
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 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 p
pure , 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 à
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.
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
.
Paramètres
- source
- IEnumerable<TSource>
Séquence à partir de laquelle retourner les éléments.
Fonction permettant de tester chaque élément par rapport à une condition.
Retours
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.
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 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 p
pure , 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.