Novidades do .NET 8: estruturas chave-valor imutáveis com FrozenDictionary
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:
Na próxima imagem temos o resultado da execução desta Console Application a partir do Visual Studio 2022:
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!