Détails
Comment trier un dictionnaire par valeur ?
Je dois souvent trier un dictionnaire, composé de clés & ; valeurs, par valeur. Par exemple, j'ai un hachage de mots et de leurs fréquences respectives, que je veux classer par fréquence.
Il y a une SortedList
qui est bonne pour une seule valeur (disons la fréquence), que je veux remettre en correspondance avec le mot.
Le SortedDictionary ordonne par clé, pas par valeur. Certains ont recours à une [classe personnalisée] (http://www.codeproject.com/KB/recipes/lookupcollection.aspx), mais existe-t-il une méthode plus propre ?
768
3
Utilisez :
Si vous ciblez .NET 2.0 ou plus, vous pouvez simplifier cette syntaxe en utilisant la syntaxe lambda - c'est équivalent, mais plus court. Si vous ciblez .NET 2.0, vous ne pouvez utiliser cette syntaxe que si vous utilisez le compilateur de Visual Studio 2008 (ou supérieur).
En regardant autour de nous, et en utilisant certaines fonctionnalités de C# 3.0, nous pouvons le faire :
C'est la méthode la plus propre que j'ai vue et elle est similaire à la façon dont Ruby gère les hachages.
À un niveau élevé, vous n'avez pas d'autre choix que de parcourir l'ensemble du dictionnaire et d'examiner chaque valeur.
Ceci peut vous aider : http://bytes.com/forum/thread563638.html Copie/collage de John Timney :