Хранятся ли элементы в словаре как в списке
Появилась надобность работать со словарём параллельно как со списком ключей/значений, ибо реализую что то вроде обхода графа в ширину, где рёбра имеют веса до определённой глубины (пока суммарный вес рёбер не достигнет какого то значения или не превысит его), использую обход в ширину, а не в глубину по той причине, что мне важен порядок вывода элементов после этого (нужно что бы выводилось "по слоям" начиная со стартовой вершины), от того и вопрос: если я делаю dictionary.Keys.ToList() (аналогично с Values) - сохраняется ли порядок элементов в таком списке по отношению к тому, в каком порядке в словарь добавлялись новые значения?(добавляются через dictionary[someKey] = someValue) Надеюсь достаточно понятно объяснил
Ответы (2 шт):
Уточните, какой именно тип вы используете в качестве dictionary? Вероятно, это System.Collections.Generic.Dictionary<TKey,TValue>. Он реализован как Hash table. В хэш-таблице порядок элементов в общем случае не гарантируется.
Для общего развития:
Associative array имеет разные внутренние реализации: хэш-таблица, дерево поиска и другие.