Construindo um dicionário ordenado usando ToDictionary

Eu não sou um especialista em C # e LINQ.

eu tenho umDictionary, que eu entendo uma tabela de hash, ou seja, as chaves não são classificadas.

dataBase = new Dictionary<string, Record>()

Record é uma classe definida pelo usuário que contém vários dados para uma determinada string de chave.

Eu encontrei um exemplo interessante que converte issoDictionary dentro declassificado dicionário por LINQ:

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

Este código funciona corretamente. O resultadosortedDict é classificado por chaves.

Questão: Eu achei aquilosortedDict ainda é uma tabela de hash, um tipo de:

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

Eu esperava que o dicionário resultante fosse uma espécie demap como em C ++ STL, que geralmente é implementado como uma árvore binária (balanceada) para manter a ordenação das chaves. No entanto, o dicionário resultante ainda é uma tabela de hash.

ComosortedDict pode manter a encomenda? Uma tabela de hash não pode conter a ordem das chaves. A implementação do C # 'sGeneric.Dictionary diferente de uma tabela hash típica?

questionAnswers(3)

yourAnswerToTheQuestion