Découvrir LINQ en C#

Aborder la jointure

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez faire une première approche de la jointure en utilisant une syntaxe fluent sur deux listes de string.
05:32

Transcription

Toujours pour voir comment manipuler deux collections en même temps, on va voir les jointures. Alors, entre parenthèse, si vous n'êtes pas familier avec la notion de jointure dans un langage comme SQL, je vous suggère d'aller par exemple jeter un œil sur la formation du langage SQL qui est dans le catalogue pour voir juste la partie jointure parce que c'est quand même plus facile d'aborder les jointures en LINQ si on sait déjà de quoi il s'agit conceptuellement. C'est à dire finalement prendre deux collections, en général des objets, là je vais faire une première démonstration avec des listes de string. Ça vaut ce que ça vaut, mais on va pouvoir déjà voir un peu la syntaxe. Et donc en général, une jointure, on prend deux collections d'objet et puis on dit on va faire une correspondance entre un objet dans la collection ou plusieurs et un autre objet dans une autre collection ou plusieurs pour voir, sur un critère de correspondance, comment les mettre ensemble. Je vais vous montrer ça un tout petit peu plus clairement. Je pars déjà avec mes deux listes de string. Je passe ici, et là je vais le faire pour l'instant en syntaxe Method, en syntaxe Fluent, même si c'est pas la meilleure pour faire un « Join », mais on va déjà jeter un coup d'œil et puis on se simplifiera la vie après. Autant commencer difficile et puis après on va pouvoir respirer. Donc, « Join », je fais ma jointure. Oui, il va falloir que je donne un ou deux paramètres à mon « Join ». Je vais dire lui dire, un, tu fais une jointure avec quoi ? Avec « L2 », ça pour l'instant ça va. Je vais le formater un peu d'ailleurs, ça sera plus lisible. Ensuite, deuxième paramètre, qu'est-ce qu'on va prendre comme critère pour faire la comparaison entre la gauche et la droite ? Qu'est-ce qu'on va prendre dans « L1 » ? Je vais écrire quelque chose comme ça. Donc, vous voyez que j'ai une lambda qui va me permettre de choisir, voilà, l'élément de ma première collection sur laquelle je veux faire la comparaison. En fait, ici c'est bête, comme j'ai une liste de string, je me prends moi-même, je n'ai pas d'élément. C'est pas un objet donc il n'y a pas de propriétés donc je n'ai pas d'élément plus précis. Je vous ferai un exemple ensuite avec quelque chose d'un peu plus clair, sur des objets qui ont des propriétés. Donc, troisième paramètre, qu'est-ce qu'on prend dans « L2 » ? Donc, l'opérant de droite de la comparaison qu'on va faire pour notre jointure. Donc je vais faire un copier/coller. Je vais créer un « v2 » et je vais dire dans « L2 », en fait on va prendre « L2 » tout court. Ici bien entendu on est dans une syntaxe lambda donc ici « v2 » ça va être la variable qui est le paramètre représenté pour la lambda qui va récupérer automatiquement « L2 » comme « v1 » ici est la variable, le paramètre, pour ma lambda qui va récupérer automatiquement « L1 ». C'est pour ça que je fais « v1 = v1 », « v2 = v2 » parce que maintenant je vais dire par rapport à ce paramètre, qui est automatiquement « L1 », tu me prends tout « L1 », c'est à dire la chaîne qui se trouve dans chaque élément. Vous me suivez ? Ce sera plus clair quand on va faire notre deuxième exemple. Et ensuite, on va dire, qu'est-ce qu'on récupère ? Alors, une lambda à nouveau pour dire on passe deux paramètres, notre première collection et notre deuxième collection. Donc je vais remettre par exemple « v1 » « v2 » et une lambda qui va dire qu'est-ce qu'on va afficher finalement. On va prendre quoi de tout ça ? Et donc je vais faire une nouvelle classe anonyme pour dire que je vais lui mettre une propriété « un » qui contiendra « v1 » et une propriété « deux » qui contiendra « v2 ». Ça parait un peu compliqué comme ça, mais je pense que l'exemple ici n'est pas inutile parce que ça permet de manipuler un peu dans sa tête les concepts de lambda et de mieux comprendre, si vous voulez, le fonctionnement de LINQ. Cette syntaxe, je me répète, est un peu confuse. On va basculer ensuite sur la syntaxe requête qui, elle, est quand même un peu plus claire, surtout pour les gens qui ont l'habitude du langage SLQ. Mais... Ok, voyons déjà si ça marche. Alors... Qu'est-ce qui s'est passé ? Nous avons « un », « deux », « trois », nous avons « trois », « quatre », « cinq ». Nous avons dit, fais-moi une jointure entre « l1 » et « l2 ». Tu nous prends du côté « l1 » le string lui-même. Du côté « l2 » le string lui-même et tu nous fais la comparaison ici entre le deux. C'est ce que ça veut dire ici finalement. Parce que, quand on parle de jointure ici en LINQ, on parle équijointure finalement. On verra comment on peut faire mieux après mais pensons simplement en équijointure. On va avoir une égalité et donc « trois » étant égal à « trois », on récupère seulement « trois » d'un côté, « trois » de l'autre. Et on va dire je vais faire une nouvelle classe anonyme. Dans « un » je vais mettre cette valeur-là. Dans « deux » je vais mettre cette valeur-là puisqu'elles ont une correspondance et donc c'est la ligne on pourrait dire en SQL ou c'est ici les deux éléments de nos collections qu'on a trouvé et donc on les affiche. En « un », on a « trois », en « deux » on a « trois » également. Voilà un premier exemple de syntaxe de jointure. On va améliorer un petit peu les choses.

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 !