Novidades do .NET 9: o tipo genérico OrderedDictionary<TKey, TValue>

Renato Groffe
2 min readOct 3, 2024

--

A classe OrderedDictionary permite armazenar chaves e valores mantendo uma ordem dentro de uma coleção, estando presente desde as primeiras versões (2.0 em diante) da plataforma .NET. Entretanto, este tipo contava até o .NET 8.0 com uma grande limitação: não era possível o seu uso empregando Generics.

Com o .NET 9 esta lacuna foi preenchida, já que temos agora a possibilidade de utilizar a implementação genérica OrderedDictionary<TKey, TValue>. Com isso podemos nos beneficiar da capacidade de ordenação oferecida originalmente por OrderedDictionary, tirando ainda proveito de uma tipagem mais forte decorrente do uso de Generics.

A listagem seguinte traz um exemplo de utilização de OrderedDictionary<TKey, TValue>:

  • A ordenação dos itens será respeitada, levando em conta inclusive as posições de cada par chave-valor indicadas na inicialização do objeto (linhas 10 a 17);
  • O uso de métodos como Add, Insert, RemoveAt e Insert (linhas 18 a 21) também preserva tal organização, com algumas dessas funcionalidades permitindo inclusive especificar um índice ao realizar uma alteração (caso de Insert, RemoveAt e Insert, ao passo que Add incluirá um novo par chave-valor ao final da coleção).

O resultado da execução dessa aplicação de testes pode ser observado na imagem a seguir:

Clique nesta imagem para visualizar com uma melhor resolução

Esse projeto foi disponibilizado no GitHub:

https://github.com/renatogroffe/DotNet9-ConsoleApp-OrderedDictionary

Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker