L'application de LINQ to Objects Groupe Par et de les Trier Par génériques List<T> (C#)
Je vais avoir un moment difficile la création de Groupe de travail et de Tri Par des clauses contre un générique Liste maliste.
ma liste est une liste de propriété "Paramètres" qui lui-même contient une liste de 'enfant' propriétés de chaque entreprise.
Je veux du groupe par une Industrie et au sein de chaque Industrie, trier par nom d'entreprise. Mon intention serait celui-ci:
string groupSetting = "Industry";
sortSetting = "BusinessName";
myList.GroupBy(p => p.Settings.Find(s => s.Name == groupSetting)).OrderBy(p => p.Settings.Find(t => t.Name == sortSetting));
Cependant j'obtiens l'erreur :
'Système.Linq.IGrouping ne contient pas une définition pour les Réglages, et aucune méthode d'extension des Paramètres de acceptant un premier argument de type Système.Linq.Igrouping a pu être trouvé....' indiquant que je ne peut pas invoquer la clause order by sans une transformation ou un traitement supplémentaire.
J'ai essayé toutes sortes de choses pour le diviser et de le faire fonctionner, mais il me manque quelque chose. Toute aide appréciée
OriginalL'auteur Ash Machine | 2009-05-19
Vous devez vous connecter pour publier un commentaire.
Votre problème, c'est que
GroupBy
ne retourne pas une seule liste de paramètres, il renvoie à une "liste de listes". C'est leIGrouping
qui vous voient.Vous avez besoin pour effectuer une itération sur chaque groupe de la
IGrouping
, de sorte que groupe, puis itérer sur chaque élément au sein du groupe. Observer:Structures de données fournies pour plus de clarté:
Ce produit la sortie suivante: Copier/coller le code et l'exécuter et de jouer avec elle
OriginalL'auteur Orion Edwards