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

Opérateurs de partition LINQ Take & TakeWhile

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

Take

La méthode d'extension Take() retourne un nombre spécifié d'éléments à partir du premier élément.

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

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

Dim takeResult = From s In studentList
                 Take 3
                 Select s

TakeWhile

La méthode d'extension TakeWhile() retourne les éléments d'un ensemble donné jusqu'à ce que la condition spécifiée soit vraie. Si le premier élément ne satisfait pas la condition, une collection vide est retournée.

TakeWhile a deux surcharges. Une reprise prend une prédicat de type Func<TSource, bool>, et l'autre reprise prend un prédicat de type Func<TSource, int, bool> passant par l'index de l'élément.

Dans l'exemple suivant, TakeWhile() retourne un nouveau ensemble contenant tous les éléments jusqu'à ce que l'on trouve un élément whose length est inférieure à4caractères.

Exemple : TakeWhile dans C# retourne les chaînes whose length is greater than4des éléments

IList<string> strList = new List<string>() { 
                                            "Trois", 
                                            "Quatre", 
                                            "Cinq", 
                                            "Cent"};
var result = strList.TakeWhile(s => s.Length > 4);
foreach(string str in result)
        Console.WriteLine(str);
Sortie :
Trois

Dans l'exemple ci-dessus, TakeWhile() retourne uniquement le premier élément, car le deuxième élément de chaîne ne satisfait pas cette condition.

TakeWhile transmet également l'index actuel de l'élément au fonctionnaire de prédicat. Voici un exemple de TakeWhile avec une méthode prenant un élément jusqu'à ce que la longueur de la chaîne de caractères soit supérieure à son index

Exemple : TakeWhile dans C# transmet l'index, retourne les éléments de chaîne whose length is greater than the index
IList<string> strList = new List<string>() { 
                                            "Un", 
                                            "Deux", 
                                            "Trois", 
                                            "Quatre", 
                                            "Cinq", 
                                            "Six"};
var resultList = strList.TakeWhile((s, i) => s.Length > i);
foreach(string str in resultList)
        Console.WriteLine(str);
Sortie :
Un
Deux
Trois
Quatre