Когда использовать SortedList <TKey, TValue> поверх SortedDictionary <TKey, TValue>?

Это может показаться дубликатом этоговопрос, который спрашивает "В чем разница междуSortedList а такжеSortedDictionary«К сожалению, ответы не более чем цитируют документацию MSDN (в которой четко указано, что между ними есть различия в производительности и использовании памяти), но не действуют, просто отвечают на вопрос.

На самом деле (и поэтому на этот вопрос нет одинаковых ответов), согласно MSDN:

SortedList<TKey, TValue> универсальный класс - это двоичное дерево поиска с O (log n) поиском, где n - количество элементов в словаре. В этом он похож наSortedDictionary<TKey, TValue> родовой класс. Два класса имеют похожие объектные модели, и оба имеют O (log n) извлечения. Эти два класса различаются в использовании памяти и скорости вставки и удаления:

SortedList<TKey, TValue> использует меньше памяти, чемSortedDictionary<TKey, TValue>.

SortedDictionary<TKey, TValue> имеет более быстрые операции вставки и удаления для несортированных данных, O (log n) в отличие от O (n) дляSortedList<TKey, TValue>.

Если список заполняется сразу из отсортированных данных,SortedList<TKey, TValue> быстрее чемSortedDictionary<TKey, TValue>.

Итак, ясно, что это указывало бы на то, чтоSortedList<TKey, TValue> лучший выборесли вам нужно быстрее вставлять и удалять операции длянесортированный данные.

Вопрос по-прежнему остается, учитывая приведенную выше информацию, каковы практические (в реальных условиях, бизнес-кейс и т. Д.) Причины использованияSortedDictionary<TKey, TValue>? Основываясь на информации о производительности, это будет означать, что на самом деле нет необходимости иметьSortedDictionary<TKey, TValue> вообще.

Ответы на вопрос(5)

Ваш ответ на вопрос