Novidades do .NET 8: estruturas chave-valor imutáveis com FrozenDictionary

Renato Groffe
2 min readOct 16, 2023

O .NET 8 traz também novidades envolvendo coleções. Uma dessas melhorias está no tipo FrozenDictionary, que integra o namespace System.Collections.Frozen. Além de possibilitar que um conjunto de dados organizado em chaves e valores não sofra alterações após a sua inicialização (tornando-se assim imutável), implementações baseadas em FrozenDictionary buscam oferecer ainda uma maior performance em operações de leitura.

Na listagem a seguir temos um exemplo de criação de um FrozenDictionary:

  • Instanciamos aqui nossos pares de chaves e valores (sigla dos estados + capitais) como um Dictionary<string, string>;
  • A chamada ao método ToFrozenDictionary produzirá uma instância de FrozenDictionary que, exceto por sua imutabilidade, poderá ser manipulada em ações de leitura como um Dictionary convencional.

Uma tentativa de tentar atribuir um valor a uma chave de um FrozenDictionary resultará em erro, como indicado na imagem seguinte:

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

Na próxima imagem temos o resultado da execução desta Console Application a partir do Visual Studio 2022:

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

Esse exemplo está disponível no GitHub:

https://github.com/renatogroffe/DotNet8-ConsoleApp-FrozenDictionary

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

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