LINQ - Trier la Liste des objets à l'aide de OrderBy EnumValue, et l'Union de l'ensemble de résultats?
Salutations! Je veux utiliser LINQ pour interroger une liste d'objets et de les classer par une énumération de valeur, chaîne de valeur, puis de l'union, le reste de la liste triée de manière similaire LINQ newbie ici, alors soyez gentil.
//CTOR for my class
MyClass(id, "Name Value Here", Enum.EnumValueHere);
Je créer une liste de ces objets et que vous voulez à la variable de tri de telle sorte que tous les éléments avec le protocole Enum.EnumValue[X] sont affichés en premier dans la liste, triée par Nom, suivi par tous les autres éléments triés dans un mode similaire (almnost comme une Union d'ensembles de résultats dans SQL)
//What I have so far (only sorts the list)
List<MyClass> = (from s in MyClass orderby s.EnumValue, s.NameValue select s).ToList();
Importe quel Gourou est sorti il y a quelques LINQ Magique à partager?
Merci!
SQL permet uniquement d'un ORDRE PAR la requête, pensez donc à commander l'ensemble et pas chacun de l'UNION de la section. Il y a des astuces pour trier chaque section de l'UNION différemment, mais je ne pense pas que c'est ce que vous demandez.
OriginalL'auteur | 2009-07-15
Vous devez vous connecter pour publier un commentaire.
Vous ne savez pas exactement ce que tu veux dire, mais pourriez-vous utiliser quelque chose comme cela?
Si
collectionOfClassyClasses
était une sorte de collection deClassyClass
objets, puisorderedList
serait ordonné, afin que tous ceux avec de la Couleur Rouge d'abord, ordonnée par nom, et puis tous les autres, classés par couleur et puis le nom. Au moins, je pense qu'il serait... ne l'ai pas testé :p Laissez-moi savoir si ce n'est pas, hehe.Génial d'entendre ça fonctionne 🙂 je vais supprimer les modifier et de corriger le code de sorte qu'il est correct à la place =)
OriginalL'auteur Svish
Vous pouvez prendre la première liste et faire une liste.AddRange() qui prend un ienumerable.
OriginalL'auteur yieldvs