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,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>)

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.

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 utiliser SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) pour ignorer des éléments d’un tableau tant qu’une condition qui dépend de l’index de l’élément a la valeur true.

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 de l’exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer 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 sa GetEnumerator méthode directement, soit en utilisant foreach en Visual C# ou For Each dans Visual Basic.

La SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) méthode teste chaque élément de source à l’aide de predicate et ignore l’élément si le résultat est true . Une fois que la fonction de prédicat retourne false pour un élément, cet élément et les éléments restants dans source sont généré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 SkipWhile méthodes et sont des compléments fonctionnels. À partir d’une séquence de collection coll et d’une fonction pure p , la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) donne la même séquence que coll .

dans Visual Basic syntaxe d’expression de requête, une Skip While clause se traduit par un appel de SkipWhile .

Voir aussi

S’applique à

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.

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 a la valeur true.

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 de l’exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour effectuer 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 sa GetEnumerator méthode directement, soit en utilisant foreach en Visual C# ou For Each dans Visual Basic.

Cette méthode teste chaque élément de source à l’aide de predicate et ignore l’élément si le résultat est true . Une fois que la fonction de prédicat retourne false pour un élément, cet élément et les éléments restants dans source sont généré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 SkipWhile méthodes et sont des compléments fonctionnels. À partir d’une séquence de collection coll et d’une fonction pure p , la concaténation des résultats de coll.TakeWhile(p) et coll.SkipWhile(p) donne la même séquence que coll .

dans Visual Basic syntaxe d’expression de requête, une Skip While clause se traduit par un appel de SkipWhile .

Voir aussi

S’applique à