Cela peut sembler être un double de cette question, qui pose la question "Quelle est la différence entre SortedList et SortedDictionary?" Malheureusement, les réponses ne sont rien de plus que citer la documentation MSDN (qui stipule clairement qu'il y a de la performance et de l'utilisation de la mémoire différences entre les deux) mais ne pas vraiment répondre à la question.
En fait (et donc, cette question n'a pas obtenir les mêmes réponses), selon le site web MSDN:
L'
SortedList<TKey, TValue>
générique la classe est un arbre de recherche binaire avec O(log n) de récupération, où n est le nombre d'éléments dans le dictionnaire. En cela, il est semblable à l'SortedDictionary<TKey, TValue>
générique classe. Les deux classes ont les mêmes modèles d'objet, et les deux ont O(log n) de la récupération. Où les deux classes diffèrent, c'est dans l'utilisation de la mémoire et de la vitesse de l'insertion et le retrait:
SortedList<TKey, TValue>
utilise moins de de mémoire qu'SortedDictionary<TKey, TValue>
.
SortedDictionary<TKey, TValue>
a plus vite l'insertion et le retrait opérations pour des données non triées, O(log n) contrairement à O(n) pourSortedList<TKey, TValue>
.Si la liste est remplie tout à la fois à partir de données triées,
SortedList<TKey, TValue>
est plus rapide queSortedDictionary<TKey, TValue>
.
Donc, clairement, ce serait indiqué qu' SortedList<TKey, TValue>
est le meilleur choix , sauf si vous avez besoin plus rapidement insérer et supprimer des opérations pour les ménagères de données.
La question demeure, compte tenu des informations ci-dessus quelles sont les pratiques (dans le monde réel, analyse de cas, etc.) raisons pour l'utilisation d'un SortedDictionary<TKey, TValue>
? Basé sur l'information sur le rendement, cela impliquerait qu'il n'y a vraiment pas besoin d' SortedDictionary<TKey, TValue>
à tous.