Maison >développement back-end >C++ >Comment puis-je garantir une énumération ordonnée des éléments du dictionnaire en C# ?
Maintenir l'ordre lors de l'itération dans les dictionnaires C#
Les dictionnaires C# standard ne garantissent pas intrinsèquement un ordre spécifique des éléments lors de l'énumération. L'ordre peut varier de manière imprévisible, quelle que soit la séquence d'insertion. Cependant, il existe des moyens de contrôler l'ordre des itérations si nécessaire.
Méthodes d'énumération ordonnée
Plusieurs stratégies peuvent assurer un parcours ordonné des éléments du dictionnaire :
1. Tri des paires KeyValuePair :
Cette méthode convertit le dictionnaire en un tableau trié de KeyValuePair
objets.
<code class="language-csharp">var sortedKVPs = _Dictionary.OrderBy(x => x.Key).ToArray(); foreach (KeyValuePair<string, string> kvp in sortedKVPs) { Trace.Write(String.Format("{0}={1}", kvp.Key, kvp.Value)); }</code>
Cet extrait de code trie les paires clé-valeur en fonction des clés, puis parcourt le tableau trié, fournissant l'ordre alphabétique dans cet exemple.
2. Tirer parti de OrderedDictionary :
La classe OrderedDictionary
maintient explicitement l'ordre d'insertion.
<code class="language-csharp">// Create an ordered dictionary var orderedDictionary = new OrderedDictionary(); // Add elements orderedDictionary.Add("orange", "1"); orderedDictionary.Add("apple", "4"); orderedDictionary.Add("cucumber", "6"); // Add using indexer orderedDictionary["banana"] = 7; orderedDictionary["pineapple"] = 7; // Enumerate the ordered dictionary foreach (DictionaryEntry entry in orderedDictionary) { Trace.Write(String.Format("{0}={1}", entry.Key, entry.Value)); }</code>
Les éléments sont récupérés dans l'ordre exact dans lequel ils ont été ajoutés au OrderedDictionary
. Notez que OrderedDictionary
est une classe héritée ; pour les nouveaux projets, pensez à utiliser SortedDictionary
ou SortedList<TKey, TValue>
. SortedDictionary
permet de trier les clés et SortedList<TKey, TValue>
offre des fonctionnalités similaires avec de meilleures performances dans certains cas.
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!