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.Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.

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.Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.

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.Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. 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.

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.Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements.

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.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> à partir duquel retourner les éléments.An IEnumerable<T> 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, à partir du premier élément de la série linéaire à ne pas réussir le test spécifié par predicate.An IEnumerable<T> that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate.

Exceptions

source ou predicate est null.source or predicate is 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.The following code example demonstrates how to use SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) to skip elements of an array as long as a condition is 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 méthode SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) est implémentée à l’aide de l’exécution différée.The SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Boolean>) 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.

Cette méthode teste chaque élément de source à l’aide de predicate et ignore l’élément si le résultat est true.This method tests each element of source by using predicate and skips the element if the result is true. Une fois que la fonction de prédicat a retourné 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.After the predicate function returns false for an element, that element and the remaining elements in source are yielded and there are no more invocations of predicate.

Si predicate retourne true pour tous les éléments de la séquence, une IEnumerable<T> vide est retournée.If predicate returns true for all elements in the sequence, an empty IEnumerable<T> is returned.

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 Skip While se traduit par un appel de SkipWhile.In Visual Basic query expression syntax, a Skip While clause translates to an invocation of SkipWhile.

Voir aussi

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.Bypasses elements in a sequence as long as a specified condition is true and then returns the remaining elements. 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> ^ 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.The type of the elements of source.

Paramètres

source
IEnumerable<TSource>

IEnumerable<T> à partir duquel retourner les éléments.An IEnumerable<T> 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, à partir du premier élément de la série linéaire à ne pas réussir le test spécifié par predicate.An IEnumerable<T> that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate.

Exceptions

source ou predicate est null.source or predicate is 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.The following code example demonstrates how to use SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) to skip elements of an array as long as a condition that depends on the element's index is 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.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 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) teste chaque élément de source à l’aide de predicate et ignore l’élément si le résultat est true.The SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource,Int32,Boolean>) method tests each element of source by using predicate and skips the element if the result is true. Une fois que la fonction de prédicat a retourné 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.After the predicate function returns false for an element, that element and the remaining elements in source are yielded and there are no more invocations of predicate.

Si predicate retourne true pour tous les éléments de la séquence, une IEnumerable<T> vide est retournée.If predicate returns true for all elements in the sequence, an empty IEnumerable<T> is returned.

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 Skip While se traduit par un appel de SkipWhile.In Visual Basic query expression syntax, a Skip While clause translates to an invocation of SkipWhile.

Voir aussi

S’applique à