Enumerable.SkipWhile 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.
Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants.
Surcharges
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) |
Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) |
Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants. L’index de l’élément est utilisé dans la logique de la fonction de prédicat. |
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>)
- Source:
- Skip.cs
- Source:
- Skip.cs
- Source:
- Skip.cs
Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants.
public:
generic <typename TSource>
[System::Runtime::CompilerServices::Extension]
static System::Collections::Generic::IEnumerable<TSource> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(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>
IEnumerable<T> à partir duquel 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, à partir du premier élément de la série linéaire à ne pas réussir le test spécifié par predicate
.
Exceptions
source
ou predicate
est null
.
Exemples
L’exemple de code suivant montre comment utiliser SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) pour ignorer des éléments d’un tableau tant qu’une condition est vraie.
int[] grades = { 59, 82, 70, 56, 92, 98, 85 };
IEnumerable<int> lowerGrades =
grades
.OrderByDescending(grade => grade)
.SkipWhile(grade => grade >= 80);
Console.WriteLine("All grades below 80:");
foreach (int grade in lowerGrades)
{
Console.WriteLine(grade);
}
/*
This code produces the following output:
All grades below 80:
70
59
56
*/
' Create an array of integers that represent grades.
Dim grades() As Integer = {59, 82, 70, 56, 92, 98, 85}
' Sort the grades in descending order and
' get all grades greater less than 80.
Dim lowerGrades As IEnumerable(Of Integer) =
grades _
.OrderByDescending(Function(grade) grade) _
.SkipWhile(Function(grade) grade >= 80)
' Display the results.
Dim output As New System.Text.StringBuilder("All grades below 80:" & vbCrLf)
For Each grade As Integer In lowerGrades
output.AppendLine(grade)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' All grades below 80:
' 70
' 59
' 56
Remarques
La SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) 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.
Cette méthode teste chaque élément de source
en utilisant predicate
et ignore l’élément si le résultat est true
. Une fois que la fonction de prédicat est retournée false
pour un élément, cet élément et les éléments restants dans source
sont renvoyés et il n’y a plus d’appels de predicate
.
Si predicate
retourne true
pour tous les éléments de la séquence, un vide IEnumerable<T> est retourné.
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 Skip While
clause se traduit par un appel de SkipWhile.
Voir aussi
S’applique à
SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>)
- Source:
- Skip.cs
- Source:
- Skip.cs
- Source:
- Skip.cs
Ignore des éléments dans une séquence tant que la condition spécifiée a la valeur true, puis retourne les éléments restants. 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> ^ SkipWhile(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, int, bool> ^ predicate);
public static System.Collections.Generic.IEnumerable<TSource> SkipWhile<TSource> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,int,bool> predicate);
static member SkipWhile : seq<'Source> * Func<'Source, int, bool> -> seq<'Source>
<Extension()>
Public Function SkipWhile(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>
IEnumerable<T> à partir duquel 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, à partir du premier élément de la série linéaire à ne pas réussir le test spécifié par predicate
.
Exceptions
source
ou predicate
est null
.
Exemples
L’exemple de code suivant montre comment ignorer SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) des éléments d’un tableau tant qu’une condition qui dépend de l’index de l’élément est vraie.
int[] amounts = { 5000, 2500, 9000, 8000,
6500, 4000, 1500, 5500 };
IEnumerable<int> query =
amounts.SkipWhile((amount, index) => amount > index * 1000);
foreach (int amount in query)
{
Console.WriteLine(amount);
}
/*
This code produces the following output:
4000
1500
5500
*/
' Create an array of integers.
Dim amounts() As Integer =
{5000, 2500, 9000, 8000, 6500, 4000, 1500, 5500}
' Skip items in the array whose value is greater than
' the item's index times 1000; get the remaining items.
Dim query As IEnumerable(Of Integer) =
amounts.SkipWhile(Function(amount, index) _
amount > index * 1000)
' Output the results.
Dim output As New System.Text.StringBuilder
For Each amount As Integer In query
output.AppendLine(amount)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' 4000
' 1500
' 5500
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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) méthode teste chaque élément de à l’aide predicate
de source
et ignore l’élément si le résultat est true
. Une fois que la fonction de prédicat est retournée false
pour un élément, cet élément et les éléments restants dans source
sont renvoyés et il n’y a plus d’appels de predicate
.
Si predicate
retourne true
pour tous les éléments de la séquence, un vide IEnumerable<T> est retourné.
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 Skip While
clause se traduit par un appel de SkipWhile.