Создание отсортированного словаря с использованием 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
кроме типичной хеш-таблицы?