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#

Comprendre la jointure de groupe

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez approfondir vos connaissances des jointures LINQ en abordant la jointure de groupe, ou group join.
05:32

Transcription

Ce que nous avons vu dans la vidéo précédente, c'est bien sûr un exemple de jointure interne, un concept dont vous êtes peut-être familier si vous faites du SQL, qui vient de l'algèbre relationnelle. On a une jointure entre deux ensembles, ici, entre deux collections, en l'occurrence. Où on a Martin et Paul, Rose, Mathieu et Cerise, mais surtout Martin et Paul, parce qu'Anne et Sylvie, n'ayant pas d'enfants, eh bien, on ne retourne ici que dans cette collection des éléments qui ont une correspondance de l'autre côté. On va donc éliminer les éléments qui n'ont pas de correspondance. On va voir qu'on peut faire des jointures externes, mais juste avant, j'aimerai vous montrer un autre type de jointure, qui lui n'a pas de correspondance, dans la syntaxe SQL, et qui s'appelle un group join. Mais c'est assez simple à comprendre et à faire. Je reprends ma jointure interne ici, qui est toute simple. Et je rajoute, après le join, donc à la fin de l'instruction join, un into, et je vais dire un alias. Je vais créer une variable, en fait, que je vais appeler G, pour groupe, ou GE pour groupe d'enfants par exemple, peu importe. Maintenant, alors, j'essaie d'exécuter ça. On va me dire, ah non, ici il y a un problème, le nom E n'existe pas dans le contexte actuel. Into, c'est une syntaxe qu'on va voir aussi quand on va voir les groupes. Incessamment sous peu, qui va être une forme de déclaration de variables, ou d'alias, on pourrait dire, qui cache la variable ou l'alias qu'on vient de définir. En d'autres termes, lorsqu'on avait fait un Let, on avait positionné par ici. On avait pu attribuer quelque chose comme le résultat d'un calcul, peu importe, à une variable, qui est disponible pour la suite, mais qui ne cache rien. Par contre, si je fais un Into, eh bien, sur mon join, je dis tu fais une jointure sur ça, avec ça. Et ensuite, je dis, tu mets tout ça là dedans, et lorsqu'on est dans GE, eh bien, plus tard, on n'a plus du tout accès à E, qui n'existe plus mais qui a été absorbé, si vous voulez, par le nom de variables que j'ai indiqué ici. Alors qu'est-ce que c'est ce résultat GE ? Eh bien, c'est ce qu'on appelle un group join, en d'autres termes. Vous avez vu que j'ai toujours parents à disposition, le P ici, est les parents, mais je fais une jointure sur mes enfants, et dans GE, j'ai maintenant pour chaque parent, un groupe des enfants de ce parent. En d'autres termes, j'ai un tableau, une collection à disposition, qui va me donner, regrouper tous les enfants, je vous montre de toute façon. Dans enfant ici, je vais peut-être le mettre au pluriel d'ailleurs, Je vais mettre simplement GE, est-ce que ça passe ? Voilà, ça me retourne une forme quelque part, de jointure externe, puisque maintenant j'ai Anne et Sylvie. Mais, j'ai parent, OK, j'ai récupéré ça, c'est à disposition, ça vient de P. C'est le nom des parents. Et ensuite, j'ai dit les enfants ça va être GE, le résultat de mon group join. Et donc, j'ai une fois Martin, même s'il a deux enfants. J'ai une fois Paul, il a un enfant. Et Martin va se retrouver avec ici, enfant, qui est un IGrouping, bon, qui a deux items. Et Rose et Mathieu, c'est-à-dire l'intégralité des correspondances d'enfants, que j'ai trouvé par rapport à ma jointure. Et maintenant, je vais pouvoir l'utiliser, ici, si je récupère tout ça comme, finalement, une paire clé-valeur, la clé étant le parent, et puis, la valeur étant, voilà, un tableau, on pourrait dire, une collection, qui, implémente IGrouping de résultats de ma deuxième classe, si vous voulez. Je pourrai, si je voulais, faire un peu plus compliqué que ça ici. Et mélanger, ce n'est pas toujours une excellente idée, mais mélanger une syntaxe de requête, que je suis en train d'utiliser ici, avec une syntaxe méthode. Parce que je pourrai faire quelque chose comme ça, un Select, en disant OK, donc à un enfant, ce que je veux c'est récupérer le nom à chaque fois. Et, on va voir ce que ça donne, pas tout à fait, parce que nom, ne prend pas un N majuscule. Je vais me retrouver ici avec un IEnumerable de string, cette fois-ci, puisque j'ai extrait, à l'aide de mon Select, seulement à des membres de cette collection d'objets. Et à des membres de ces objets dans la collection, et puis, je peux bien sûr faire quelque chose comme ça à nouveau, ToArray, pour récupérer purement, un tableau de chaînes. Je pourrai me simplifier mon retour pour avoir maintenant dans res, quelque chose de tout à fait manipulable dans le reste de mon code, des paires clé-valeur, avec en clé le parent, et puis, un tableau d'enfants. Et donc, pour avoir des paires clés-valeurs, eh bien, je pourrai prendre ceci, et puis évidemment, utiliser la méthode qu'on a vu, ToDictionary, pour réellement créer un dictionnaire.

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 !