Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

Découvrir LINQ en C#

Effectuer des tris avec OrderBy

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez utiliser les clauses de tri pour trier votre collection en syntaxe requête et en syntaxe méthode.
06:04

Transcription

Dans un IEnumerable, comme une liste, spécifiquement par exemple, ma liste, les éléments sont triés. Quand on gère une liste, on fait un Add et on ajoute à la fin, ou on peut ajouter au début. Donc, il y a un tri, comment est-ce qu'on va exprimer ce tri, dans une requête Linq, pour retourner un IEnumerable, dans un ordre particulier ? Eh bien, vous vous doutez peut-être qu'ici dans ma syntaxe de requête, Linq peut avoir quelque chose comme un Orderby, absolument. L'Orderby vient dans une requête SQL traditionnelle à la fin. Ici, il va s'exprimer juste avant le Select. Donc, je rajoute une ligne, je fais simplement un Orderby. Et ici, tout à fait traditionnellement, rien de particulier, je vais faire un Orderby sur une des propriétés de mon type, et par exemple je vais dire, allez, date de début, et puis vous dites ascendant, descendant ? Évidemment, on va pouvoir le préciser, par exemple, descending. Et puis évidemment, si je veux trier ensuite sur autre chose, eh bien, je vais rajouter avec une virgule, vous vous en doutez, quelque chose comme ça, que je vais pouvoir mettre ascending. Mais vous vous doutez aussi probablement, que c'est la valeur par défaut. Donc, inutile de la mettre, et voilà, vous avez fait un tri ! Est-ce qu'on peut arriver à la même chose avec un syntaxe par méthode ? Oui, parce que chaque fois, vous allez avoir des méthodes spécifiques, pour faire la même chose, il faudra les utiliser de façon chaînée. Je vous montre. Après, ça va être une question de goûts, personnellement, et aussi de ce que vous pouvez faire avec une syntaxe et avec une autre. On ne peut pas faire aussi facilement dans une syntaxe en méthode parfois ce qu'on peut faire dans une syntaxe en requête. Et l'inverse est vrai également, donc je vais faire un résultat 2 et cette fois-ci, je vais prendre ma collection de sessions, j'applique une des méthodes d'extension. Orderby, ou Orderbydescending. Vous avez compris, je vais prendre Orderby descending ici. Et puis, comment est-ce que j'exprime le tri ? Avec une expression lambda nécessairement et toujours quand vous utiliserez ce type de méthode d'extension, donc on fait une lambda, pour dire on va trier de façon descendingNone par, on avait pris ici, notre date de début. Donc on a un équivalent de ça, ici. On est d'accord. Comment est-ce qu'on en fait un deuxième ? Aha, alors, est-ce qu'on est encore en Orderby ? Eh bien, non, parce que vous avez une méthode spécifique, qui va permettre de faire d'abord un premier tri. Et ensuite de conserver ce tri, mais à l'intérieur de celui-ci, faire un deuxième tri. Parce que si je fais un Orderby date début, et ensuite je dis à nouveau un Orderby nombre d'inscrits, Eh bien, c'est le dernier Orderby qui va gagner. Et j'aurai un tri par nombre d'inscrits, vous voyez ce que je veux dire. Pas par d'abord la date de début, et ensuite le nombre d'inscrits. Il faut donc que j'utilise une méthode spécifique ici qui s'appelle ThenBy. Ou ThenByDescending, qui s'assure que le tri précédent est conservé qu'à l'intérieur de ce tri précédent, on trie dans le même groupe par, eh bien, par ce que je veux. Et, oui, oui, je suis obligé de refaire une lambda, c'est-à-dire de renvoyer une fonction anonyme complète de nouveau. Et donc, on fait ça. Voilà l'équivalent. Enfin, bien sûr, ici, nous sommes d'accord, ce n'est pas tout à fait l'équivalent, ce que je fais ici, c'est créer un type anonyme. Alors que ce que je fais ici, c'est simplement retourner une nouvelle collection de sessions. Ce qui fait que mon résultat ici, est un IEnumerable de sessions, alors qu'ici, le résultat, on est d'accord, est un IEnumerable d'un type anonyme. Avant de vous montrer comment faire exactement la même chose dans une syntaxe méthode, je vais juste montrer encore une méthode supplémentaire qui n'est pas vraiment disponible ici. C'est, elle est très rigolote, celle-là, simplement Reverse, qui ne prend évidemment aucun paramètre. Parce que, ce que va faire Reverse, c'est simplement inverser l'ordre des éléments dans la séquence. Si vous avez envie juste, voilà, de retourner complètement la collection, vous utilisez Reverse. Enfin, j'enlève mon Reverse, si je veux exprimer la même chose, un type anonyme, alors je vais prendre ça. Je fais un petit copier-coller, et je vais venir ici, qu'est-ce que je vais utiliser comme méthode Linq ? Un Select, vous vous en doutez peut-être un peu, alors je vais améliorer la présentation de ma requête. Parce que je peux bien surfaire comme ceci, pour rendre les choses un peu plus lisibles. Et puis, je vais maintenant faire un Select, et je vais utiliser, eh bien, une fois de plus, une expression lambda, pour dire que je vais retourner à raison des S, à nouveau. À chaque fois que vous faites une variable ou un alias ici, dans des expressions lambda différentes, bien entendu, chaque expression lambda est isolée, et peu importe l'identifiant que vous utilisez, il n'y a pas de collisions entre ces identifiants évidemment. Et ici, je reprends ma syntaxe, je n'ai plus de I, c'est assez évident. Mon I, c'était le nombre d'inscrits, et voilà, j'exprime finalement la même chose à travers une lambda, et la fonction créer un type anonyme, au passage, et me voici avec le même type anonyme de résultat, enfin. En tout cas, la même structure de type anonyme, ce ne sont pas les mêmes, puisqu'elles sont de type anonyme. Bref, vous avez compris. Donc, voilà l'équivalent en requête ou en syntaxe méthode.

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 !