Maison >développement back-end >C++ >Comment puis-je trier efficacement un dictionnaire par valeur en C #?
C # Valeur du dictionnaire Tri efficace: analyse de manière approfondie
Dans la programmation, en particulier lors du traitement des valeurs clés (où les valeurs représentent certaines caractéristiques), le tri des dictionnaires est une exigence commune. Par exemple, le tri du dictionnaire contenant la fréquence des mots peut fournir des informations précieuses pour l'analyse de texte.
Bien que le dictionnaire lui-même conserve l'ordre des clés, il nécessite différentes méthodes pour les trier en fonction des valeurs. Une solution simple consiste à utiliser la valeur de stockage
et le mappage des clés pour revenir au dictionnaire d'origine. Cependant, cette solution a ses propres limitations car elle est séparée par des paires de valeurs clés.
SortedList
Un moyen plus concis et plus complet d'atteindre cet objectif est d'utiliser LINQ (Enquête sur l'intégration du langage). Linq fournit une grammaire simple et facile à lire pour interroger et faire fonctionner les données:
Ce code générera un nouveau dictionnaire
<code class="language-csharp">Dictionary<string, int> myDict = new Dictionary<string, int>(); myDict.Add("one", 1); myDict.Add("four", 4); myDict.Add("two", 2); myDict.Add("three", 3); var sortedDict = from entry in myDict orderby entry.Value ascending select entry;</code>, où la valeur de clé est triée par l'ordre de sa valeur.
La clause spécifie les conditions de tri et la clause sortedDict
projetée le résultat en tant qu'entrée de dictionnaire. orderby
select
La fonction de Linq n'est pas seulement le tri simple. Il permet des requêtes flexibles et complexes. Par exemple, vous pouvez récupérer les 10 meilleurs mots ou écran les plus fréquents en fonction de conditions spécifiques:
Cette flexibilité fait de Linq une solution idéale pour le tri et les dictionnaires de fonctionnement.
<code class="language-csharp">var topTen = sortedDict.Take(10); var startsWithA = from entry in sortedDict where entry.Key.StartsWith("a") select entry;</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!