Category Archives: cs6

I Love C#, 6 Dictionary Initializer

Dictionary Initializer

Continuando a saga para conhecer as novas features do C#6 projetadas para nos ajudar na codificação de nossos aplicativos. Vamos lá:

Hoje o C#6 apresenta o quinto recurso, a Dictionary Initializer. Projetado para permitir permitem adicionar itens a uma coleção quando a coleção é instanciada de forma mais enxuta e legível.

Chega de teoria!

Console Project

Aqui um exemplo que carrega dois objetos de cliente em uma lista:

List<Cliente> cList = new List<Cliente>() 
{
 new Cliente("A123"), 
 new Cliente("B345")
}

Como era antes no C#5

Aqui um dicionário simples.

Dictionary<string, Cliente> cList = new Dictionary<string, Cliente>()
{
  {"A123", new Cliente("A123")},
  {"B456", new Cliente("B456")}
};

Aqui outro exemplo de inicialização:

Dictionary<int, string> dicionario = new Dictionary<int, string>()
            {
                {1, "C#" },
                {2, "Web" },
                {3, "Apps" },
                {4, "Xamarin" }
            };

            foreach (var item in dicionario)
            {
                WriteLine(item.Key + "" + item.Value);
            }

No C# 5, era muito FEIO inicializar um valor de uma chave em uma coleção dicionário. Temos muitos de sinais de pontuação em um espaço pequeno.

Agora no C#6

Agora temos esta nova sintaxe:

Dictionary<string, Customer> cList = new Dictionary<string, Customer>()
{
  ["A123"] = new Customer("A123"),
  ["B246"] = new Customer("B246")
};

Melhorando o segundo exemplo:

Dictionary<int, string> dicionario = new Dictionary<int, string>()
            {
                [1] = "C#",
                [2] = "Web",
                [3] = "Apps",
                [4] = "Xamarin" 
            };

Note que temos uma sintaxe de inicialização mais clara e objetiva, onde foi eliminada algumas chaves e utilizamos os valores de dicionário diretamente pelo operador “=”.

cs6_dictionaryinitializer

Podemos inicializar diretamente um valor de uma chave em um conjunto de dicionário com ele, quer a chave na coleção seja um tipo string ou a qualquer outro tipo de dados.

That’s considerably easier to read.

Então é isso treine bastante, e fiquei familiarizado com estes novos recursos.

Ok! Um pouco sobre as FEATURES do C#6.