Listas ilimitadas en C#.

Iniciado por P[i], 3 Abril 2007, 17:13 PM

0 Miembros y 1 Visitante están viendo este tema.

P[i]

 Hola, estoy haciendo un programa  en C# y ya de partida no se como idear el programa, os explico.
Tengo que hacer una lista (ilimitado) en la que se añada los elementos nuevos al final y ademas poder eliminar cualkiera elemento de la lista sin borrar los demas. En principio lo iva hacer con lazos como en C pero me di cuenta que en C# no se puede hacer punteros de estructuras. Despues se me ocurrio defenir una matriz y cuando añadir uno nuevo crear otra matriz mas grande y despues copiar la matriz vieja a la nueva y añadir en el ultimo valor lo nuevo, y algo por el estilo para eliminar, pero esto implicaria tener que andar copiando a mano todas matrices y no me gusta demasiado.
Por favor si alguien tienes alguna idea de como hacer una lsita ilimitada en C# sera bien agredeciada jeje.
Chao y saludos.

MANULOMM

Hola, la solucion a tu pregunta son los listados genericos
en .net como te habras podido dar cuenta no existe la funcion redim como en vb 6.0 para trabajar con matrices por la simple razon que esa funcion redim era igual de mala para la memoria como crear una nueva matriz y copiar los datos.....
Los listados genericos no son campos continuos sino campos librea de la memoria que son marcado como pertenecientes a un listado generico..... la cosa es que son excelentes para lo que necesitas:
se declara asi:


List<-tipodato> <nombre> = new List<-tipodato->();
Ejemplo:
List<int> MiListado = new List<int>();


Para Adicionar Datos:

MiListado.add(10);
//Suponiendo que el listado es de tipo entero ingreso en la ultima pos empezando desde 0 el valor 10.


Para eliminar un pos:

Supongamos que tenemos el Listado MiListado con 5 pos empezando desde 0 osea que el index mas alto es 4, el listado tiene los siguientes datos:
pos 0 --> 10
pos 1 --> 20
pos 2 --> 30
pos 3 --> 40
pos 4 --> 50
supongamos que queremos eliminar la pos 2 seria asi:

MiListado.RemoveAt(2);

supongamos que queremos eliminar la pos que contiene el valor 20 seria asi:

MiListado.Remove(20);

Espero que esto te sirva.

Atentamente,

Juan Manuel Lombana
Medellín - Colombia


[D4N93R]

Es correcto, también puedes crear una clase algo así:


class Numeros : List<Int32>
{ }


y listo, queda super chévere y puedes sobreescribir sus métodos para mayor personalización.. saludos.

tonny_7

La verdad yo no manejo c, pero te puedo ayudar a crear lista en c#:

solo manda mensaje a

marco_tonny@hotmail.es