Inicialização de instâncias do tipo Dictionary - C# 6.0
O objetivo deste artigo é apresentar a nova forma para inicializar instâncias do tipo Dictionary no C# 6.0.
** Este post foi elaborado com base em um material publicado através do grupo de usuários .NET Coders, uma das principais comunidades de desenvolvimento no mundo.
*
Introdução
Em versões anteriores do C# existiam dois modos possíveis para a inicialização de objetos do tipo Dictionary. A primeira forma empregava o método Add, logo após a geração de uma instância da classe Dictionary:
...
Dictionary<string, string> capitais =
new Dictionary<string, string>();
capitais.Add("SP", "São Paulo");
capitais.Add("RJ", "Rio de Janeiro");
capitais.Add("MG", "Minas Gerais");
capitais.Add("RS", "Porto Alegre");
capitais.Add("BA", "Salvador");
capitais.Add("SC", "Santa Catarina");
capitais.Add("DF", "Brasília");
...
A segunda maneira utiliza pares formados por chave e valor, com estes dois elementos separados pelos caracteres “{” e “}”:
...
Dictionary<string, string> capitais =
new Dictionary<string, string>()
{
{"SP", "São Paulo"},
{"RJ", "Rio de Janeiro"},
{"MG", "Minas Gerais"},
{"RS", "Porto Alegre"},
{"BA", "Salvador"},
{"SC", "Santa Catarina"},
{"DF", "Brasília"}
};
...
Nova forma de inicialização no C# 6.0
Ainda considerando o exemplo que envolve capitais e respectivos estados, na listagem apresentada nesta seção está sendo detalhado como ficaria a declaração da referência correspondente no C# 6.0.
Os elementos que constituem as chaves podem vir agora delimitados por colchetes (“[” e “]”), estando separados dos valores por um sinal de igual. Os diferentes itens (chave + valor) que compõem a coleç����o, por sua vez, encontram-se separados por vírgulas. É importante destacar que embora esta alternativa faça uso de uma sintaxe considerada mais intuitiva por muitos, a mesma não substitui as outras possibilidades herdadas de versões anteriores da linguagem.
using System;
using System.Collections.Generic;
namespace TesteInicializacaoDictionary
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, string> capitais =
new Dictionary<string, string>()
{
["SP"] = "São Paulo",
["RJ"] = "Rio de Janeiro",
["MG"] = "Minas Gerais",
["RS"] = "Porto Alegre",
["BA"] = "Salvador",
["SC"] = "Santa Catarina",
["DF"] = "Brasília"
};
Console.WriteLine("Alguns exemplos de capitais brasileiras:\n");
foreach (var capital in capitais)
{
Console.WriteLine("{0} - {1}",
capital.Value, capital.Key);
}
Console.ReadKey();
}
}
}
Na próxima imagem está o resultado da execução deste bloco de código:
Links
C# 6.0 - Novos Recursos (Exemplos)
https://gallery.technet.microsoft.com/C-60-Novos-Recursos-d22a7d9d
New Language Features in C# 6
https://github.com/dotnet/roslyn/wiki/New-Language-Features-in-C%23-6
.NET Coders – Blog
http://netcoders.com.br/blog/
.NET Coders – Facebook
https://www.facebook.com/groups/netcoders/
.NET Coders – Meetup
http://www.meetup.com/pt/NetCoders/