Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

''''''''''''''

Dictionary apenas retorna ultimo valor adicionado (C#)

Recommended Posts

Sou novo na plataforma C#, quem puder ajudar agradeço.

 

Segue o problema:

Adiciono vários novos professores a uma classe e mapeio todos em outra com o Directory. Segue código:

 

professor.cs

class Professor
    {
        private static int idProfessor = 0;
        private static String nomeProfessor = "";
        Materia[] materia = null;

        public Professor(int ID, String NOME, Materia[] MATERIAS)
        {
            idProfessor = ID;
            nomeProfessor = NOME;
            materia = MATERIAS;

            maps.addProfessor(this);
        }
}

maps.cs

 class maps
    {
        private static Dictionary<int, Professor> professores = new Dictionary<int, Professor>();
        private static Dictionary<String, Professor> _professores = new Dictionary<String, Professor>();


        public static void addProfessor(Professor p)
        {
            professores.Add(p.IDp, p);
            _professores.Add(p.NomeProfessor, p);
        }
        public static Professor getProfessorByID(int ID)
        {
            try
            {
                return professores[ID];
            }
            catch (Exception IO)
            {
                return null;
            }
        }
}

ONDE ADICIONO OS PROFESSORES:

Professor p1 = new Professor(1, "Matilde", null);
Professor p2 = new Professor(2, "Pricila", null);

/*MANUAL POR EQUANTO*/

ONDE TENTO PEGAR O PROFESSOR PELO ID:

Professor P = maps.getProfessorByID(1); // ID = 1
lbtest.Items.Add(P.NomeProfessor);

 

 

/*CLASSES RESUMIDAS*/

 

Meu problema é: Quando tento puxar o PROFESSOR e OUTRAS Classes pelo Dictionary apenas o último adicionado retorna. No caso a professora "PRICILA".

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já debugou? Provavelmente quando vai inserir o segundo professor sua lista ja esta vazia.... Confira se isso acontece. Sua classe maps é instanciada mais de uma vez? Não tem no código quando ela é instanciada.

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.