Découvrir LINQ en C#

Utiliser Take et While pour boucler dans la collection

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez appliquer les méthodes Take et While pour parcourir les éléments d'une collection, sans écrire de boucles.
05:47

Transcription

On vient de voir un certain nombre de méthodes d'extraction, comme first par exemple. J'ai rajouté ici dans mon code, un Dump de GetType, juste pour vous montrer de quel type de données il s'agit en retour. Évidemment, quand je fais un first, je retrouve un élément, donc il est assez logique de retrouver un élément du type de ma collection, qui est ici un type anonyme, bon, c'est la vie. Et donc, j'ai effectivement en retour ici, un élément, donc on a sorti, cet élément de la collection, on n'est plus dans une collection, on a représenté le type lui-même. La classe elle-même, on a extrait, donc on a extrait, on est d'accord, cette valeur. Je vais vous montrer autre chose. Comment est-ce que je fais pour extraire une collection qui va filtrer les éléments ? Vous allez me dire, eh bien je vais faire un where, évidemment vous allez faire un where, on va faire quelque chose comme ça. Avec une lambda, pour faire un filtre sur la ville, par exemple. Et je vais regarder qui habite à Graz, et je vais garder que ceux qui habitent à Graz, ce qui me donne maintenant un résultat de type IEnumerable, on est d'accord, de deux éléments qui sont des places anonymes, en l'occurrence, Anne et Sylvie. Donc, c'est quand même la manière la plus simple. Maintenant, si vous avez besoin de faire quelque chose qui ressemble à une boucle for ou un foreach, plutôt, et que vous voulez le faire de façon déclarative, eh bien, vous pouvez. Par exemple, vous pouvez dire, je vais prendre un certain nombre d'éléments à partir du début, bon, comment est-ce qu'on fait ça ? Eh bien, on va dire non pas un where, mais on va dire allez, prends-en, fait un take, tu m'en prends deux ou trois, allez, soyons fous. Voilà. Le premier, le deuxième, le troisième, j'en ai pris trois, je te les ai donnés. Sympa, voilà. Et, bon c'est bien, même si je fais un take de 1, je n'arrive pas à la même chose qu'un first. Le first, vous vous souvenez, va retourner le type lui-même. Tandis que le take 1, va retourner une collection, un IEnumerable, d'un seul élément, on est ici toujours dans une collection, qui ne retourne qu'un seul élément. Donc, le take va retourner systématiquement une collection. Je peux faire aussi quelque chose qui s'appelle takewhile, alors là, vous vous doutez bien, on va commencer dès le début et puis on va prendre tant qu'une condition est vraie. Et puis on ne va pas aller chercher plus loin. Ce que je veux dire par là, c'est on commence dès le début, on vérifie la condition, qu'on va bien entendu ici mettre sous forme de lambda. Je vais dire par exemple, P ville est égale à Nantes. Et à ce moment-là, ceci veut dire, OK, tu commences dès le début, et tant que la ville est égale à Nantes, tu prends. Et donc, j'en ai deux. Et nous sommes d'accord, si je fais quelque chose comme ça, Et je vais l'appeler Adrien. Voilà, beau formatage, eh bien, je n'aurai pas Adrien. Il va commencer au début, tester, et lorsque le test sera faux, eh bien, la boucle while sera quittée, d'accord ? C'est-à-dire que si je fais quelque chose comme ça, eh bien, je n'aurai rien du tout. Puisqu'au début, c'est déjà faux, donc le while, va être faux dès le début, il n'y aura rien qui est pris. Ce n'est pas du tout la même chose que la méthode where, où on filtre ici, on fait une boucle, un peu bébête. Mais ce sont, si vous voulez, des méthodes qui nous simplifient la vie, lorsqu'on doit faire ce type de boucles. Ce n'est pas tous les jours, je ne vous le cache pas. Le correspondant dans l'autre sens, on va dire dans le sens until, eh bien, vous vous en doutez peut-être, s'appelle Skip. Alors, je vous montre déjà, le skip tout court, et on va lui dire skip 2. Donc ça veut dire tu commences depuis le début, tu n'en prends pas deux, et tu prends tout le reste. On commence ici à Anne, c'est la troisième, alors pourquoi pas ? Et bien sûr, vous avez un skip while, je vais prendre ça, pour me simplifier la vie, et je vais dire skip while. Alors, skip while, je vais prendre Graz par exemple. On est d'accord, ça, ça va tout prendre, ah, pourquoi ? Parce qu'on va dire, tu skip, c'est-à-dire tu ne prends pas tant que cette condition est vraie. Or ici, la condition est fausse dès le départ, donc il ne fait pas de skip, et il ne cherche plus beaucoup à réfléchir. Donc ça, ça ne veut rien dire, strictement rien dire. Ce que vous allez faire, c'est ça, tu skip, tant que c'est différent de Graz, donc les deux premiers Nantes ne vont pas être pris, mais on est d'accord aussi, le dernier Nantes va être pris également, parce qu'ici, on a dit, ah j'arrête de faire un skip, et maintenant je prends tout. Donc ce n'est pas extraordinaire, extraordinaire comme méthode, mais dans certains cas, ça peut vous rendre service. Il est évident aussi que ça peut valoir la peine si vous avez besoin de les utiliser, de faire un Orderby quelque part, pour rendre les choses peut-être un petit peu plus normales. Mais autrement, pour tous vos filtres, vous faites un where bien sûr. Ici, c'est plus quelque chose que vous allez utiliser si vous avez un traitement en boucle à faire.

Découvrir LINQ en C#

Apprenez à manipuler des éléments de collection de façon déclarative avec LINQ. Étudiez la syntaxe, l’utilisation de la clause Where et la projection, triez les résultats, etc.

2h34 (31 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
Spécial abonnés
Date de parution :19 janv. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !