Когда использовать SortedList <TKey, TValue> поверх SortedDictionary <TKey, TValue>?
Это может показаться дубликатом этоговопрос, который спрашиваетКакие'Разница междуSortedList а такжеSortedDictionary?» К сожалению, ответы не более чем цитируют документацию MSDN (в которой четко указано, что между ними есть различия в производительности и использовании памяти), но неТ на самом деле ответить на вопрос.
На самом деле (и поэтому этот вопрос неполучить те же ответы), в соответствии с MSDN:
SortedList
универсальный класс - это двоичное дерево поиска с O (log n) поиском, где n - количество элементов в словаре. В этом он похож наSortedDictionary
родовой класс. Два класса имеют похожие объектные модели, и оба имеют O (log n) извлечения. Эти два класса различаются в использовании памяти и скорости вставки и удаления:
SortedList
использует меньше памяти, чем.SortedDictionary
SortedDictionary
имеет более быстрые операции вставки и удаления для несортированных данных, O (log n), в отличие от O (n) для.SortedList
Если список заполняется сразу из отсортированных данных,SortedList
быстрее чем.SortedDictionary
Итак, ясно, что это указывало бы наSortedList
лучший выборесли вам нужно быстрее вставлять и удалять операции длянесортированный данные.
Вопрос по-прежнему остается, учитывая приведенную выше информацию, каковы практические (в реальных условиях, бизнес-кейс и т. Д.) Причины использованияSortedDictionary
? Основываясь на информации о производительности, это будет означать, что на самом деле нет необходимости иметьSortedDictionary
совсем.