English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Opérateurs de partition Skip & SkipWhile LINQ

L'opérateur de partition LINQ divise la séquence (ensemble) en deux parties et retourne l'une des parties.

MéthodeDescription
Skip

À partir de l'élément premier de la séquence, sautez l'élément à la position spécifiée.

SkipWhile

Sautez les éléments en fonction des conditions jusqu'à ce que l'élément ne satisfasse plus les conditions. Si l'élément premier ne satisfait pas les conditions, il saute 0 éléments et retourne tous les éléments de la séquence.

Prendre

À partir de l'élément premier de la séquence, déplacez l'élément à la position spécifiée.

TakeWhile

Retourne les éléments à partir du premier élément jusqu'à ce que l'élément ne satisfasse pas la condition. Si le premier élément ne satisfait pas la condition, il retourne un ensemble vide.

Skip

La méthode Skip() saute un certain nombre d'éléments à partir du premier élément et retourne les éléments restants. Si le premier élément ne satisfait pas la condition, il retourne un ensemble vide.

IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" };
var newList = strList.Skip(2);
foreach (var str in newList)
    Console.WriteLine(str);
Sortie :
Three
Four
Five

L'opérateur Skip dans la syntaxe de requête

La syntaxe de requête C # ne prend pas en charge les opérateurs Skip et SkipWhile. Cependant, vous pouvez utiliser Skip pour les variables de requête./La méthode SkipWhile, ou enveloppez l'ensemble de la requête dans des parenthèses et appelez Skip/SkipWhile.

L'exemple suivant montre l'opérateur de syntaxe de requête skip-Version VB.NET

Dim skipResult = From s In studentList
                 Skip 3
                 Sélectionner s

SkipWhile

Comme son nom l'indique, l'extension de méthode SkipWhile() dans LINQ saute les éléments de la collection jusqu'à ce que la condition spécifiée soit true. Une fois que la condition spécifiée de tout élément devient fausse, elle retourne un nouveau ensemble contenant tous les éléments restants.

La méthode SkipWhile() de LINQ a deux surcharges. Une reprise accepte le type de prédicat Func<TSource, bool>, et l'autre reprise accepte le type de prédicat Func<TSource, int, bool> via l'index de l'élément.

Dans l'exemple suivant, la méthode SkipWhile() saute tous les éléments jusqu'à ce qu'elle trouve une longueur égale ou supérieure à4de caractères.

Exemple : Utilisation de la méthode SkipWhile() en C# pour sauter les chaînes whose length is less than4des éléments, et retourne tous les éléments suivants

IList<string> strList = new List<string>() { 
                                            "One", 
                                            "Two", 
                                            "Three", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var resultList = strList.SkipWhile(s => s.Length < 4);
foreach(string str in resultList)
        Console.WriteLine(str);
Sortie :
Three
Four
Five
Six

Dans l'exemple précédent, en raison de la longueur des deux premiers éléments inférieure à3donc SkipWhile() saute les deux premiers éléments et trouve la longueur égale ou supérieure à4le troisième élément. Une fois trouvé, la longueur égale ou supérieure à4de caractères de tout élément, il ne sautera aucun autre élément, même s'il est inférieur à4de caractères.

Maintenant, regardez l'exemple suivant, dans lequel SkipWhile () ne saute aucun élément, car la condition spécifiée pour le premier élément est fausse.

IList<string> strList = new List<string>() { 
                                            "Three", 
                                            "One", 
                                            "Two", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var resultList = strList.SkipWhile(s => s.Length < 4);
foreach(string str in resultList)
        Console.WriteLine(str);
Sortie :
Three
One
Two
Four
Five
Six

La deuxième surcharge de SkipWhile passe chaque index d'élément.

Exemple : Utilisation de la méthode SkipWhile() avec des indices en C#
IList<string> strList = new List<string>() { 
                                            "One", 
                                            "Two", 
                                            "Three", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var result = strList.SkipWhile((s, i) => s.Length > i);
foreach(string str in result)
    Console.WriteLine(str);
Sortie :
Five
Six

Dans l'exemple ci-dessus, l'expression lambda inclut l'élément et l'index de l'élément en tant que paramètres. Il saute tous les éléments jusqu'à ce que la longueur de l'élément de chaîne soit supérieure à son index.

Opérateur SkipWhile dans la syntaxe de requête

La syntaxe de requête C# ne prend pas en charge les opérateurs Skip & SkipWhile. Cependant, vous pouvez utiliser Skip pour les variables de requête/La méthode SkipWhile, ou enveloppez l'ensemble de la requête dans des parenthèses et appelez Skip/SkipWhile ()。

Exemple : Méthode SkipWhile dans VB.Net
Dim strList = New List(Of string) From {
                                        "One", 
                                        "Two", 
                                        "Three", 
                                        "Four", 
                                        "Five", 
                                        "Six"}
Dim skipWhileResult = From s In studentList
                      Skip While s.Length < 4
                      Sélectionner s
Sortie :
Three
Four
Five
Six