1 pièce(s) jointe(s)
Reformulation de requête Linq
bonjour,
Je suis toujours dans mes tris avec Linq. Mon code fonctionne mais je le trouve pas très joli. Je pense que l'on peut l'exprimer de façon plus propre.
La collection à trier est de type List<ExternalData>. ExternalData est une classe de base abstraite. Dans mon cas, j'utilise la classe dérivée ExternalAnimal pour trier (pour les tests selon l'ID ou le nom et plus tard la date de naissance ou je ne sais quoi).
Le diagramme de classes ressemble à ça :
Pièce jointe 610172
Ce code là permet de lister de manière unique toutes les races et de les retourner dans List<string> et de les trier par ordre croissant :
Code:
1 2 3
|
var qry7 = this.Collection.Select(p => ((ExternalAnimal)p).Breed1).Distinct().ToList();
qry7.Sort(); |
Donc j'ai cette autre requête qui fonctionner presque comme la précédente :
Code:
1 2 3 4 5
|
var qry3 = this.Collection
.Select(p => ((ExternalAnimal)p).Breed1)
.Distinct()
.ToList(); |
à l'exception de .OrderBy que je n'arrive pas à définir pour que ça compile. C'est probablement une bricole mais là vu l'heure, je fatigue et je tourne en rond :(
Merci.