Создание отсортированного словаря с использованием ToDictionary

Я не эксперт в C # и LINQ.

у меня естьDictionary, что я понимаю хеш-таблицу, то есть ключи не отсортированы.

dataBase = new Dictionary<string, Record>()

Record пользовательский класс, который содержит ряд данных для данной ключевой строки.

Я нашел интересный пример, который преобразует этоDictionary вотсортированный словарь по LINQ:

var sortedDict = (from entry in dataBase orderby entry.Key ascending select entry)
.ToDictionary(pair => pair.Key, pair => pair.Value);

Этот код работает правильно. РезультирующийsortedDict сортируется по ключам.

Вопрос: Я нашел этоsortedDict по-прежнему хэш-таблица, тип:

System.Collections.Generic.Dictionary<string, Record>

Я ожидал, что полученный словарь должен быть своего родаmap как в C ++ STL, который обычно реализуется как (сбалансированное) двоичное дерево для поддержания порядка ключей. Однако полученный словарь по-прежнему является хеш-таблицей.

КакsortedDict можете поддерживать порядок? Хеш-таблица не может содержать порядок ключей. Это реализация C #Generic.Dictionary кроме типичной хеш-таблицы?

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

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