• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

chowchow

[C#] Array to ArrayList

5 mensagens neste tópico

Ola!

Duvida de C#:

Tenho um array de pontos e quero passar para uma ArrayList. Estou a usar a seguinte funcao:

public ArrayList ArrayToArraylist(Point[] aux)
	{

		ArrayList list=new ArrayList();

		for(int i=0;i<list.Count;i++)
		{
			list [i]=aux [i];

		}

		return list;
	}

No entanto, quando peço para imprimir os elementos da "list", o resultado vem em branco :shocking:...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens mal a parte de adicionar elementos à ArrayList. EM baixo está a alteração. Não testei mas deve funcionar

public ArrayList ArrayToArraylist(Point[] aux)
{
         
         ArrayList list=new ArrayList();

         for(int i=0;i<list.Count;i++)
         {
            list.Add (aux) ; 
         }

         return list;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmmm não me parece que quer um quer outro codigo funcione...

O correcto deveria ser:

public ArrayList ArrayToArraylist(Point[] aux)
{
         
         ArrayList list=new ArrayList();

         for(int i=0;i<aux.Length;i++)
         {
            list.Add (aux[i]) ; 
         }

         return list;
}

Com list.Count em vez de aux.Length o teu iterador só ia até ao tamanho da nova ArrayList que era 0, portanto não estavas a fazer nada já que o ciclo for terminava logo antes da primeira iteração.

Com list = aux em vez de list.Add(aux) mesmo que o ciclo for passasse por várias iterações estarias sempre a fazer a mesmíssima operação (mesmo assim, só não tinhas erros na execução porque o ciclo for terminava antes de começar). Assim, adicionas cada elemento do Array à ArrayList, tal como pretendido.

senito: com list.Add(aux) estarias a colocar em cada posição da ArrayList o Array completo em vez de apenas um elemento.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

senito: com list.Add(aux) estarias a colocar em cada posição da ArrayList o Array completo em vez de apenas um elemento.

Tens razão. Vi o código de relance e nem reparei nisso. Só me chamou a atenção o facto de ele tar a inserir mal no ArrayList, nem reparei no ciclo for nem no aux. my bad

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora