none
ArrayList RRS feed

  • Pergunta

  • Bom dia, estou fazendo um cadastrado de Veículo, com ArrayList e Struct, com algumas funções, e tem uma delas que seria "Alterar Veículo".

    Mas chega na parte de por exemplo ele quer alterar o nome do veiculo, o meu removeAt não está dando certo, pois não da pra converter string para int, já tentei de tudo e não vai.

    public static void AltVeic(ArrayList valores) {
    			
    			TCadastro cad;
    			bool existe = false;
    			
    			Console.WriteLine("------Alteração do Veículo------");
    			
    			Console.Write("Codigo do Veículo: ");
    			int codVeiculo = int.Parse(Console.ReadLine());
    			
    			for (int i = 0; i < valores.Count; i++) {
    				cad = (TCadastro)valores[i];
    				
    				if (cad.codVeiculo.Equals(codVeiculo))
    					existe = true;
    			}
    			
    			if (existe) {
    				Console.Write("Veiculo Encontrado!");
    				Console.WriteLine("O que voce Deseja Alterar?\n" +
    				                  "1 - Nome do Veículo\n" +
    				                  "2 - Marca do Veiculo\n" +
    				                  "3 - Data de Fabricação\n" +
    				                  "4 - Motorização\n" +
    				                  "5 - Portas\n" +
    				                  "6 - Situação");
    				int opcaoAlt = int.Parse(Console.ReadLine());
    				
    				switch(opcaoAlt) {
    						
    					case 1:
    						
    						valores.RemoveAt(cad.nomeVeiculo);
    						
    						break;
    						
    				}
    				
    			} else {
    				Console.Write("Não Existe");
    			}
    		}
    Obrigado.
    quarta-feira, 6 de junho de 2012 14:09

Respostas

  • Jefferson ao invés de usar um ArrayList para guardar seus objetos do tipo complexo TCadastro, use uma lista genérica com o seu tipo, fica mais fácil:

    public static void AltVeic(System.Collections.Generic.List<TCadastro> valores)
    {
    
        TCadastro cad = null;
        bool existe = false;
    
        Console.WriteLine("------Alteração do Veículo------");
    
        Console.Write("Codigo do Veículo: ");
        int codVeiculo = int.Parse(Console.ReadLine());
    
        for (int i = 0; i < valores.Count; i++)
        {
            if (valores[i].codVeiculo.Equals(codVeiculo))
            {
                cad = valores[i];
                existe = true;
            }
        }
    
        if (existe)
        {
            Console.Write("Veiculo Encontrado!");
            Console.WriteLine("O que voce Deseja Alterar?\n" +
                                "1 - Nome do Veículo\n" +
                                "2 - Marca do Veiculo\n" +
                                "3 - Data de Fabricação\n" +
                                "4 - Motorização\n" +
                                "5 - Portas\n" +
                                "6 - Situação");
    
            int opcaoAlt = int.Parse(Console.ReadLine());
    
            switch (opcaoAlt)
            {
    
                case 1:
                    if (cad != null)
                        valores.Remove(cad);
    
                    break;
    
            }
    
        }
        else
        {
            Console.Write("Não Existe");
        }
    }


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta JeffersonRudolf sexta-feira, 8 de junho de 2012 11:35
    quinta-feira, 7 de junho de 2012 01:07

Todas as Respostas

  • Amigo,

    Voce ja utilizou o Convert?

    http://msdn.microsoft.com/en-us/library/sf1aw27b.aspx


    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria

    quarta-feira, 6 de junho de 2012 14:12
  • Já tentei usar, mas não deu certo :S
    quarta-feira, 6 de junho de 2012 14:15
  • Não da pra usar o código do veículo? 
    valores.RemoveAt(codVeiculo);

    If was useful mark as answered. Mariano, Paulo T. C.

    • Sugerido como Resposta ptcmariano quarta-feira, 6 de junho de 2012 15:59
    quarta-feira, 6 de junho de 2012 15:59
  • Não da, pois estou passando o nome do veículo para remover e logo depois ele solicita o novo nome, mas não está dando certo...não tenho ideia.
    quarta-feira, 6 de junho de 2012 16:21
  • Jefferson ao invés de usar um ArrayList para guardar seus objetos do tipo complexo TCadastro, use uma lista genérica com o seu tipo, fica mais fácil:

    public static void AltVeic(System.Collections.Generic.List<TCadastro> valores)
    {
    
        TCadastro cad = null;
        bool existe = false;
    
        Console.WriteLine("------Alteração do Veículo------");
    
        Console.Write("Codigo do Veículo: ");
        int codVeiculo = int.Parse(Console.ReadLine());
    
        for (int i = 0; i < valores.Count; i++)
        {
            if (valores[i].codVeiculo.Equals(codVeiculo))
            {
                cad = valores[i];
                existe = true;
            }
        }
    
        if (existe)
        {
            Console.Write("Veiculo Encontrado!");
            Console.WriteLine("O que voce Deseja Alterar?\n" +
                                "1 - Nome do Veículo\n" +
                                "2 - Marca do Veiculo\n" +
                                "3 - Data de Fabricação\n" +
                                "4 - Motorização\n" +
                                "5 - Portas\n" +
                                "6 - Situação");
    
            int opcaoAlt = int.Parse(Console.ReadLine());
    
            switch (opcaoAlt)
            {
    
                case 1:
                    if (cad != null)
                        valores.Remove(cad);
    
                    break;
    
            }
    
        }
        else
        {
            Console.Write("Não Existe");
        }
    }


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta JeffersonRudolf sexta-feira, 8 de junho de 2012 11:35
    quinta-feira, 7 de junho de 2012 01:07