¿Cuándo utilizar una lista ordenada <TKey, TValue> sobre un SortedDictionary <TKey, TValue>?

Esto puede parecer ser un duplicado de estepregunta, que pregunta "¿Cuál es la diferencia entreLista clasificada yOrdenadoDiccionario"Desafortunadamente, las respuestas no hacen más que citar la documentación de MSDN (que indica claramente que hay diferencias de rendimiento y uso de memoria entre las dos) pero en realidad no responden la pregunta.

De hecho (y por lo tanto esta pregunta no obtiene las mismas respuestas), según MSDN:

losSortedList<TKey, TValue> clase genérica es un árbol de búsqueda binario con recuperación O (log n), donde n es el número de elementos en el diccionario. En esto, es similar a laSortedDictionary<TKey, TValue> clase genérica Las dos clases tienen modelos de objetos similares, y ambas tienen recuperación O (log n). Donde las dos clases difieren es en el uso de la memoria y la velocidad de inserción y extracción:

SortedList<TKey, TValue> usa menos memoria queSortedDictionary<TKey, TValue>.

SortedDictionary<TKey, TValue> tiene operaciones de inserción y eliminación más rápidas para datos sin clasificar, O (log n) en lugar de O (n) paraSortedList<TKey, TValue>.

Si la lista se llena de una vez a partir de los datos ordenados,SortedList<TKey, TValue> es más rápido queSortedDictionary<TKey, TValue>.

Entonces, claramente esto indicaría queSortedList<TKey, TValue> es la mejor opciona no ser que necesita operaciones de inserción y extracción más rápidas parasin clasificar datos.

La pregunta sigue siendo, dada la información anterior, cuáles son las razones prácticas (del mundo real, de negocios, etc.) para usar unSortedDictionary<TKey, TValue>? Basado en la información de rendimiento, implicaría que realmente no hay necesidad de tenerSortedDictionary<TKey, TValue> en absoluto.

Respuestas a la pregunta(5)

Su respuesta a la pregunta