Découvrir LINQ en C#

Retourner des instances dans Select

Testez gratuitement nos 1247 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Déclarez de nouvelles instances dans la partie Select de votre requête LINQ. Une instance est soit d'un type existant, soit d'un type anonyme.
04:40

Transcription

Donc, lorsque j'utilise cette syntaxe de requête, mon select retourne un IEnumerable de quelque chose. Finalement, ici, un IEnumerable d'int ?, c'est-à-dire d'entier nullable. OK, à partir du moment où un IEnumerable est une interface qui est implémentée sous forme d'interface générique, avec la possibilité d'exprimer le type qu'on va lui envoyer, eh bien, ici, finalement, je peux indiquer n'importe quel type, et je peux même, bien entendu, créer une nouvelle instance d'un type. Ce que je veux dire par là, c'est ce que peux, ici, dire : select, et quoi ? new, et par exemple je vais faire un new Session, Je vais recréer une instance de type Session, et, alors attendez, et quoi ? Il faut que je mette quelque chose dans ma Session. Ma Session, c'est donc un type spécifique qui, si j'y vais, est donc une classe, qui contient un certain nombre de propriétés. Finalement, c'est une classe qui va contenir des données, qui représente, voilà, un type complexe. Comment est-ce que j'indique, ici, le contenu de ma nouvelle instance de Session ? Parce que je ne peux pas faire comme ceci, et puis aller en dessous, et dire OK, et en plus je ne lui ai pas donné de nom de variable. C'est-à-dire que je n'ai pas attribué à chaque objet que j'ai créé ici un nom de variable qui me permettrait de manipuler. Comment est-ce que je vais faire alors pour attribuer des valeurs aux différentes propriétés de ma Session ? Vous le savez sans doute, à partir de c-chart 3, vous avez la possibilité, en même temps que vous instanciez un objet, d'affecter à ses propriétés des valeurs dans l'instanciation même, en utilisant cette syntaxe : donc ici je fais un new Session, ça c'est classique, ensuite j'exprime... les accolades, et à l'intérieur de ces accolades je vais pouvoir directement affecter des valeurs aux propriétés. Par exemple, DateDebut, je vais faire un Now. Par exemple, Titre, et qu'est-ce que je pourrais faire ici ? Reprendre le titre qui vient de mon énumération, ici, donc qui vient de ma variable que j'ai récupérée dans mon from. Et puis par le nombre d'Inscrits, pourquoi ne récupérerais-je pas ma variable i ? Etc. A ce moment-là, j'ai recréé une instance, de n'importe quoi, là j'ai repris Session, mais j'aurais pu bien entendu reprendre n'importe quel autre type, c'est-à-dire n'importe quelle autre classe. Et ici, j'ai bien entendu en retour un IEnumerable, donc une collection de sessions. Comme je peux avoir une collection de quelque chose que je n'ai pas besoin de nommer. Je peux recréer une classe ici, ce qu'on appelle une classe anonyme, en indiquant mon mot-clé new et c'est tout. Ca, c'est une façon d'indiquer une classe anonyme, je crée une nouvelle instance de quelque chose qui n'a pas de nom et qui maintenant deviendra un IEnumerable d'un type anonyme qui contient des propriétés DateDebut, Titre et Inscrits. avec le type de données, comme vous le voyez ici, des données que j'ai attribuées à mes propriétés. C'est-à-dire qu'ici, j'ai créé un nouveau type, totalement anonyme, et j'ai dit : eh bien voilà, ce type a une date de début, un titre, des inscrits. J'ai simplement mis les noms, ils n'existent pas auparavant, ils ne sont référencés nulle part, le compilateur va créer une classe qui contient ces propriétés, nommées de cette façon, et puis bien entendu il est facile pour le compilateur de déduire quel va être le type d'Inscrits, puisqu'ici c'est un entier nullable, donc le type de cette propriété sera un entier nullable. Vous comprenez qu'avec cette syntaxe vous pouvez faire tout ce que vous voulez. Dans votre requête, vous générez un nouveau type qui contient ce que vous voulez, et vous le traitez ensuite eh bien, comme un IEnumerable, donc vous faites un foreach, vous l'utilisez comme une collection, vous avez généré à la volée un ensemble de données à manipuler dans votre code.

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 !