Découvrir LINQ en C#

Voir les méthodes de traitement d'ensembles

Testez gratuitement nos 1271 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Faites le tour des méthodes d'opérations relationnelles. Vous allez prendre en main l'union, l'intersection et la différence.
05:08

Transcription

Si vous connaissez le langage SQL, vous êtes familier peut-être avec ce qu'on appelle les opérateurs relationnels. Ce sont des opérateurs qui vont effectuer des opérations relationnelles, de l'algèbre relationnelle, sur deux ensembles. Ici, on a l'habitude de ça depuis qu'on est allés à l'école, on a un diagramme de Venn avec deux ensembles et, en général, que peut-on tirer de ces ensembles ? Soit la totalité, soit une partie seulement, soit la totalité, mais avec au milieu des éléments qui ne sont pas représentés deux fois. Donc si quelque chose croise ici, j'ai des éléments qui vont être exprimés une seule fois dans le retour. Soit, donc, seulement ce qu'il y a présent dans le premier ensemble, mais pas dans le second, et puis éventuellement ceci, c'est-à-dire ce qui est présent à la fois dans le premier ensemble et dans le second. Des choses que l'on va pouvoir faire également en LINQ grâce à des méthodes qui sont typiquement des méthodes de gestion d'ensemble. Je vais vous montrer ça. Me revoici dans LINQPad où j'ai toujours mes deux listes et je récupère la première. Je vais pouvoir utiliser plusieurs méthodes spécifiques et la première que je vais vous montrer, que vous connaissez sûrement si vous faites du SQL, c'est l'Union. L'Union, dans l'algèbre relationnelle, a une particularité, c'est qu’elle dédoublonne. Simplement, dans l'algèbre relationnelle, vous n'avez pas le droit d'avoir des relations, c'est-à-dire des ensembles, avec deux fois le même élément. Chaque élément doit être unique. « Union » ici, je vais faire tout simplement ça et je vais vous montrer déjà le résultat. « Union » ici va dédoublonner. On fait une union des deux l'ensembles, mais... on a « trois » deux fois, ici on a « trois » une seule fois. Qu'est-ce qui s'est passé ? Je dis, je prends « l1 », « un », « deux » « trois », je fais un « Union » avec « l2 », « trois », « quatre », « cinq », et donc on prend « un », « deux » « trois », le « trois » suivant on ne le reprend pas puisqu'on l'a déjà et on dédoublonne, et ensuite « quatre » et « cinq » ce qui nous donne bien « un », « deux » « trois », « quatre », « cinq ». Donc, l'Union. Je vais commenter ceci. Deuxième chose : l'exception ou la différence, mais ça s'appelle « Except » en LINQ. Donc, vous avez peut-être deviné, « un », « deux » « trois », « trois », « quatre », « cinq ». je vais prendre tout ce qu'il y a dans « l1 » sauf ce qu'il y a dans « l2 ». Et donc je vais me retrouver avec « un » et « deux ». « Un » et « deux », je ne prends surtout pas « trois » parce qu'il est présent dans « l2 ». J'ai donc la liste de tous les éléments de « l1 » qui ne sont pas présent dans « l2 ». Si vous voulez faire l'exception dans l'autre sens, vous retourner ici le traitement. Vous appelez « l2 » et vous faites un « Except(l1) », bien entendu. Enfin, l'intersection, avec « Intersect » et toujours la même syntaxe très simple, « l2 ». Une note au passage, j'en profite : quand vous traitez, non pas des listes de string ici, c'est trop facile, mais des collections d'objets, comment est-ce que vous faites pour faire un « Intersect » à partir d'une propriété de cet objet, d'un membre. Facile, ici « l2 », vous feriez quelque chose comme ça, vous faites un « Select » à l'intérieur pour récupérer, je vais dire un membre, et « m.Titre » par exemple. Je vous fais du pseudo-code ici qui ne fonctionnera pas. Donc vous dites je récupère ici et je ferais un « Select » déjà, vous voyez le principe. Je sélectionne un membre spécifique de mon objet et puis ici je sélectionne aussi un membre spécifique de mon objet de l'autre collection, de façon à pouvoir comparer des choses qui sont finalement des types simples, ok ? Donc là c'était juste pour vous montrer bien entendu, j'ai juste des listes de string. Voyons l'intersection qui va être, vous devinez, « trois » seulement bien entendu. Ensuite, vous avez une dernière possibilité. Dans « Union », on dédoublonne. Comment est-ce qu'on fait pour avoir l'ensemble des deux listes sans dédoublonner. Ce que, en SQL, on appelle un « UNION ALL ». Il n'y pas d'« UNION ALL » en LINQ mais vous avez une méthode qui s'appelle « Concat » et qui fait exactement ça. Elle concatène les deux, c'est-à-dire elle prend la première et puis elle rajoute la deuxième liste, la deuxième collection, ensuite. Bien entendu, il faut que ce soit des collections qui ont des éléments du même type, évidemment, ou d'un type qui peut être converti implicitement. Et, voyons le résultat : « un », « deux », « trois », « trois », « quatre », « cinq ». CQFD. Donc voilà quelques méthodes qui vont vous permettre de travailler avec plusieurs collections différentes.

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 !