J'ai un tableau:
var popularFuits = myFruits.GroupBy(f => f).OrderByDescending(f => f.Count).Take(3);
3 Réponses :
Votre requête est presque là.
igrouping code> n'a pas .count code>, vous devez donc utiliser .Count () code> méthode d'extension li>
- Vous devez sélectionner le
.Key code> du groupe. LI>
ol>
xxx pré> p> Merci!! C'est exactement ce que j'essayais de faire. Quel est le .key? Cela sera-t-il toujours toujours égal à une valeur distincte dans le groupement?
@Evorlor ,.Key est la chose que vous avez des éléments de groupe par - dans votre cas la valeur des éléments.
Ce qui suit vous donnera des fruits triés par la popularité, puis par ordre alphabétique si elles sont également populaires sortie p> cerise - 3
banane - 2
kiwi - 2 p>
blockQuote> p>
GroupBy Code> a une surcharge qui permet de transformer le groupe. .groupby (f => f, (clé, éléments) => nouvelle {nom = clé, compte = éléments.count ()}) code>
@hazzik merci ... un peu plus succinct. Mais probablement plus difficile à comprendre pour un débutant.
Vous pouvez sortie strong> p> groupby code> puis EckbyDescendant code> le nombre d'éléments dans un groupe comme ci-dessous. P>
Qu'est-ce qui rend votre réponse différente de celle fournie par @hazzik?
Juste la même idée (je n'ai pas lu les autres réponses), différente de explication code> et donnez l'exemple avec le résultat correspondant. Codage heureux.
OrderByDescendant code>?@stuartd oups. Belle prise. Merci! Mais ce n'est pas la partie où je me débats. C'est la logique LINQ. L'exemple ci-dessus ne compile même pas. Je vais réellement éditer ce correctif afin que cela ne soit pas dans la voie de la racine de ma question.
Je pense que c'est ce que vous recherchez: Retour MAX RÉPÉDUÉ DE LA LISTE A >.
@Christian qui est similaire, mais pas tout à fait. Hazzik a sauvé ma journée cependant!
Aucune inquiétude, je voulais juste aider. Heureux que vous avez résolu votre problème.