none
Dictionary com três argumentos(ou é variáveis) RRS feed

  • Pergunta

  • Boa tarde. Tava vendo um exemplo em que a pessoa fez da seguinte forma:

     Dictionary<string, int> Pessoas = new Dictionary<string, int>()
                       {
                          { "Nelson Silva", 21},
                          { "Maria Celeste", 37},
                        };
                           Pessoas.Add("Pedro Henrique", 52);
                           Pessoas.Add("Raquel Soares", 68);

    Minha dúvida é se tem como fazer  da seguinte maneira:

    Dictionary<string, int, Decimal> Pessoas = new Dictionary<string, int, Decimal>()

    Fui fazer mas parece que o C# não aceita assim.

    Alguém pode me explicar?

                                   

    segunda-feira, 24 de abril de 2017 21:16

Respostas

  • Bom dia JOSÉ ANTUNES COELHO,

    Vou te explicar o porquê você não consegue realizar isso.

    O dictionary, trabalha com o conceito de chave e valor, já ouviou falar de json, é a mesma coisa.

    Logo um dos resultados é o valor e o outro é a chave que serve para representar esse valor.

    Sugiro a leitura do KB da Microsoft sobre isso:

    Classe Dictionary<tkey, tvalue></tkey, tvalue>


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    segunda-feira, 22 de maio de 2017 14:39

Todas as Respostas

  • Bom dia JOSÉ ANTUNES COELHO,

    Vou te explicar o porquê você não consegue realizar isso.

    O dictionary, trabalha com o conceito de chave e valor, já ouviou falar de json, é a mesma coisa.

    Logo um dos resultados é o valor e o outro é a chave que serve para representar esse valor.

    Sugiro a leitura do KB da Microsoft sobre isso:

    Classe Dictionary<tkey, tvalue></tkey, tvalue>


    Att., Roberto Alves

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    segunda-feira, 22 de maio de 2017 14:39
  • O que você pode fazer josé?
    Viu o que o Roberto explicou? É exatamente isso, no entanto você pode contornar o problema trabalhando o Valor.

    Você pode usar um "KeyValuePair<int, decimal>" ou escrever uma classe/estrutura e fazer o dicionário como:

    public struct MatriculaSalario
    {
        public int Matricula { get; set; }
        public decimal Salario { get; set; }
    
        public MatriculaSalario(int Mat, decimal Sal) : this()
        {
            this.Matricula = Mat;
            this.Salario = Sal;
        }
    }

    E ai usar:

    Dictionary<string, MatriculaSalario> PessoasStruct;
    //Ou
    Dictionary<string, KeyValuePair<int, decimal>> PessoasKeyPair;

    Entendeu?

    • Sugerido como Resposta SammuelMiranda segunda-feira, 22 de maio de 2017 17:09
    segunda-feira, 22 de maio de 2017 17:09
  • Bom dia,

    Por falta de retorno esta thread esta encerrada !

    Por gentileza, caso necessário abra uma nova thread.

    Atenciosamente,


    Guilherme Macedo S

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 25 de maio de 2017 16:25
    Moderador