Partage via


Enumerable.SkipWhile Méthode

Définition

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.

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, à 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 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 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.

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, à 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 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 Skip While clause se traduit par un appel de SkipWhile.

Voir aussi

S’applique à