Découvrir LINQ en C#

Créer des regroupements

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Commencez à utiliser GroupBy pour effectuer des regroupements. Vous allez ensuite attribuer ce regroupement à une variable.
05:51

Transcription

Me voici de retour ici avec les parents, ils ont toujours leurs villes, une toute petite requête Linq, qui liste les villes, comme vous le voyez, doublonné. Et donc, on peut se demander, est-ce qu'on peut faire des group by en Linq ? Eh oui, comme dans SQL, on peut regrouper pour faire des sous-ensembles. Très bien, et avec quelle instruction ? Group by, peut-être ? Ah, pas faux, après mon from, avant mon select, je vais rajouter group by. Alors je mets déjà ça, mais attention. La syntaxe est ainsi, je vais dire on va grouper quoi ? C'est pas très compliqué, on va grouper P, puisque c'est ce qu'on a dans notre from. Si on en avait plusieurs, ça nous permet de choisir sur quoi, en group. Ensuite, en group by, quoi ? Bah ville ! OK, là vous commencez à voir qu'il y a un petit problème, on me dit ah, on attend des choses. Alors on me dit point virgule, expected, pourquoi pas ? Allons-y. On enlève tout, est-ce que ça suffit ? Allez, on essaie. Ah oui, ça suffit. Par contre, qu'est-ce que j'obtiens ? Alors, vous voyez que j'ai un IEnumerable de IGrouping de string, hum ! Et donc, mon IGrouping a manifestement une propriété qui s'appelle key, la clé de regroupement, très bien, et qui me redonne la ville, c'est logique. C'est là-dessus que j'ai regroupé. Bon, intéressant, et ensuite j'ai un IGrouping, qui est donc un sous-ensemble, une collection à l'intérieur de mon regroupement qui me montre assez logiquement, les éléments individuels que j'ai regroupé. Intéressant, qu'est-ce que je peux faire avec ça ? Alors, on va faire un select. Et, on va faire un select de quoi ? P, p ville, alors attention, on essaie. On dit ah bah non, ça ne marche pas du tout, pourquoi ? Parce que la syntaxe est la suivante, ici, je vais dire je fais mon group p by p ville, mais je vais faire mon regroupement et ce que nous avons vu ici. Cette structure, c'est une nouvelle représentation des données, donc, je vais la mettre dans une variable. Et donc, je vais la mettre dans une variable avec cette syntaxe, je prends mon regroupement, je le mets dans là, on l'appelle assez souvent G, pour données regroupées, group et ensuite, je peux faire, un select de G, et ça me donne, ah bah, largement la même chose. Très bien, qu'est-ce qu'on peut faire maintenant ? Bien entendu, mentionner la clé, puisque vous voyez que c'est une propriété qui est nommée ici de mon IEnumerable, très bien. Je peux bien entendu faire un Orderby. Très bien, par contre, est-ce que je peux faire quelque chose comme ça ? Alors, je change d'avis, je vais dire non, je veux faire un Orderby par le nom du parent, uhm ? Alors, from p in parents, on passe dans un regroupement, et ensuite, en-dessous, je vais dire OK. Tout ça, je veux le regrouper par le nom. Donc, ça n'a pas beaucoup de sens, on est d'accord, on essaie quand même. Et on me dit non, stop, le nom P, vous voyez ici, n'existe pas dans le contexte actuel. Pourquoi ? Eh bien parce que lorsque, OK, vous avez fait votre from. Ensuite vous avez dit, je fais un regroupement. Et, si vous avez un peu l'habitude aussi du langage SQL, je sais, je fais beaucoup de comparaisons, ça peut aider. Lorsque vous avez fait un regroupement, vous vous retrouvez avec autre chose. Des sous-ensembles, ici aussi, vous vous retrouvez avec autre chose. Et quand vous faites un into g, eh bien, vous cachez ceci. Ce n'est plus du tout accessible, puisque vous avez structuré maintenant le résultat avec lequel vous travaillez dans G, et dans G uniquement, et vous n'avez plus accès qu'à G, ah d'accord. Donc, on ne peut plus, plus loin, référencer, le from à partir du moment où on a fait le group by, le from ou les from, vous vous souvenez peut-être quand on fait un let, c'est quelque chose qu'on peut réutiliser ensuite. Et on peut réutiliser ce qu'il y a dans le from, mais ici quand je fais un group by, into, le into va générer une variable, qui va contenir mon résultat et cacher tout ce qu'il y avait avant. Bon, c'est déjà dit, donc, je peux faire ça. Mais pas réutiliser P, qu'est-ce que je vais faire ici ? Eh bien, je vais, par exemple, faire une nouvelle classe anonyme, qui va contenir la clé, et puis, oui, par exemple, g. Pour l'instant, ce n'est pas extraordinairement utile, mais bon, pourquoi pas ? Et je vais les nommer, pendant que j'y suis. Donc je vais dire la clé, c'est égal à ça, et la valeur, par exemple, c'est égal à ça. OK, maintenant, j'ai bien une classe anonyme, qui est composée de la clé, j'ai récupéré la clé. Et puis, j'ai dit valeur, et je récupère ici, vous voyez tout, avec key, etc. Donc, je vais pouvoir travailler avec ça maintenant, dans mon regroupement. Je peux bien sûr faire quelque chose comme ça, par exemple. Et puis travailler avec des méthodes Linq, qui vont me permettre, de travailler avec ceci, qui est aussi une collection. Donc ici, je vais dire à partir de ceci, qui est donc une collection de type IGrouping. Eh bien, je vais appliquer la méthode Linq Count, qui va me retourner, le nombre d'éléments, donc ça, c'est bon.

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 !