C sharp - Eliminar determinados elementos de un ArrayList

 
Vista:

Eliminar determinados elementos de un ArrayList

Publicado por fernanda (8 intervenciones) el 04/02/2005 19:36:41
Necesito saber el codigo (que funcione) para la siguiente situacion:
dado un ArrayList (tengo una coleccion de latas en este ejemplo), donde cada elemento es una lata (con nombre y codigo). Deseo eliminar todas aquellas cuyo nombre = = "a".

Para ello probe lo siguiente:
int t=0;

if (j.Count>t)

{if (j[t].nombre=="a")
{
j.RemoveAt(j[t]);
}

t+=1;
}
pero debe haber cosas mal porque no funciona!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Eliminar determinados elementos de un ArrayList

Publicado por Edgar (278 intervenciones) el 04/02/2005 20:13:23
Hola

Debes recordar que el ArrayList es una colección de objetos, asi que debes hacer la conversión primero al tipo de datos que requieres.. es decir, deberias hacer algo asi

if (((lata)j[t]).nombre=="a")
{
RemoveAt(t);
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Eliminar determinados elementos de un ArrayList

Publicado por fernanda (8 intervenciones) el 04/02/2005 20:29:17
gracias, ahora hago esto pero sigue sin andar esta parte...

private void button2_ELIM_LATA_Click(object sender, System.EventArgs e)
{int t=0;


if (j.Count>t)

{
if (((lata)j[t]).nombre=="a")
{
j.Remove(t);
MessageBox.Show("lata eliminada");
}

t+=1;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Eliminar determinados elementos de un ArrayList

Publicado por fernanda (8 intervenciones) el 04/02/2005 20:57:51
lo logre! gracias Edgar.. lo ppal era esa conversion.
private void button2_ELIM_LATA_Click(object sender, System.EventArgs e)
{int t=0;


while (j.Count>t)

{
lata l1= new lata();
l1.nombre= ((lata) j[t]).nombre;
MessageBox.Show(l1.nombre);
if (l1.nombre==\"a\")
{
MessageBox.Show(\"encontrada\");
j.Remove(t);
MessageBox.Show(\"lata eliminada\");
}

t+=1;

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Eliminar determinados elementos de un ArrayList

Publicado por Yamil Bracho (1164 intervenciones) el 05/02/2005 01:45:40
El codigo esta bien pero la clase ArrayList t tiene metodos para buscar elementos y que son implementados nativamente de manera que son mucho mas rapidos que si nosotros los programaramos. Por ejemplo tienes el metod o indexOf que te retorna la posicion del elemento dentro del ArrayList asi que el codigo te puede quedar como

int pos = j.IndexOf(l1);
if ( pos != -1 ) {
MessageBox.Show(\"encontrada\");
j.Remove(pos);
MessageBox.Show(\"lata eliminada\");
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar