Principales respuestas
Cómo crear listas de forma automática y cómo guardar listas en arreglos.

Pregunta
-
Hola, esta vez vengo con dos preguntas muy relacionadas, como dice el titulo ¿cómo genero listas de forma automatica y diferentes?
ejemplo:
for (int i; i >= numeroDado ; i++) //numeroDado es la cantidad de listas que quiero crear
{
List<string> lista = new List<string>; //en este caso siempre se me crearía la misma lista, pero yo //quiero que cada lista sea diferente.
}
La segunda pregunta es cómo guardar cada una de esas listas en un arreglo.
- Editado PequeñoSaltamontes sábado, 26 de septiembre de 2020 23:07
Respuestas
-
Hola Saltamontes
1er Pregunta:
Podes crear un array o matriz de listas, si sabes cuántos elementos tendrá (como máximo), si no, podes crear una lista de listas.
Lo primero:
List<string>[] array = new List<string>[15]; // o la cantidad que sea
// para acceder a cada List<string> del array hay que instanciarlo, así:
array[7] = new List<string>(); // es una lista de las 15 vacantes, las demás por ahora no existen
// para acceder a uno de los strings de array[7], primero hay que agregar alguno (porque no hay), y si
// intentas acceder a algo que no existe se lanzará una Exception.
array[7].Add("Primer String"); // ahora se puede acceder a array[7][0] (que es "Primer String")
o
array[7].AddRange(new string[] { "1er String", "2do String", "3er String" }); // hasta array[7][2]
Lo segundo:
List<List<string>> lista = new List<List<string>>();
// agrego una lista a la colección de listas de string
lista.Add(new List<string>());
// ahora puedo acceder a la 1ra lista recién creada
lista[0].Add("Un String");
// y ahora puedo acceder al 1er string
string str = lista[0][0];
Si queres crear una lista de 20 listas de string:
for (a = 0; a < 20; a++)
lista.Add(new List<string>());
-----------------------------------------------------------------
2da Pregunta:
Podes convertir un List en un array con el método ToArray()
// Dado List<string> lista y string[] array
array = lista.ToArray(); // ahora array contine lista.Count elementos y ese número no puede variar
Cuidado! Si tenes una lista de listas, sólo podes convertir a array las listas individuales, NO la lista de listas
Saludos
Pablo
- Marcado como respuesta PequeñoSaltamontes domingo, 27 de septiembre de 2020 0:41
-
Hola PequeñoSaltamontes,
Lo puedes hacer de esta manera, olvidé mencionarlo en los comentarios, pero lo que sucede dentro del ciclo es que se almacena la lista en la posición i del arreglo:
//Aquí creamos un arreglo con 100 listas que guardan ints //cambia int por lo que sea que quieres guardar //cambia 100 por el número de listas que ocupas List<int>[] arreglo = new List<int>[100]; //el ciclo for trabaja con el tamaño del arreglo for (int i = 0; i < arreglo.Length; i++) { arreglo[i] = new List<int>(); Console.WriteLine("La lista #" + i + " fue creada exitosamente."); }
Aquí una prueba:
Espero que te sea de ayuda. Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice “Marcar como Respuesta”). Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.
Saludos cordiales
Gabriel Castro
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
- Editado Gabriel Castro RModerator lunes, 28 de septiembre de 2020 20:57
- Marcado como respuesta PequeñoSaltamontes martes, 29 de septiembre de 2020 4:58
Todas las respuestas
-
Hola Saltamontes
1er Pregunta:
Podes crear un array o matriz de listas, si sabes cuántos elementos tendrá (como máximo), si no, podes crear una lista de listas.
Lo primero:
List<string>[] array = new List<string>[15]; // o la cantidad que sea
// para acceder a cada List<string> del array hay que instanciarlo, así:
array[7] = new List<string>(); // es una lista de las 15 vacantes, las demás por ahora no existen
// para acceder a uno de los strings de array[7], primero hay que agregar alguno (porque no hay), y si
// intentas acceder a algo que no existe se lanzará una Exception.
array[7].Add("Primer String"); // ahora se puede acceder a array[7][0] (que es "Primer String")
o
array[7].AddRange(new string[] { "1er String", "2do String", "3er String" }); // hasta array[7][2]
Lo segundo:
List<List<string>> lista = new List<List<string>>();
// agrego una lista a la colección de listas de string
lista.Add(new List<string>());
// ahora puedo acceder a la 1ra lista recién creada
lista[0].Add("Un String");
// y ahora puedo acceder al 1er string
string str = lista[0][0];
Si queres crear una lista de 20 listas de string:
for (a = 0; a < 20; a++)
lista.Add(new List<string>());
-----------------------------------------------------------------
2da Pregunta:
Podes convertir un List en un array con el método ToArray()
// Dado List<string> lista y string[] array
array = lista.ToArray(); // ahora array contine lista.Count elementos y ese número no puede variar
Cuidado! Si tenes una lista de listas, sólo podes convertir a array las listas individuales, NO la lista de listas
Saludos
Pablo
- Marcado como respuesta PequeñoSaltamontes domingo, 27 de septiembre de 2020 0:41
-
Hola PequeñoSaltamontes,
Lo puedes hacer de esta manera, olvidé mencionarlo en los comentarios, pero lo que sucede dentro del ciclo es que se almacena la lista en la posición i del arreglo:
//Aquí creamos un arreglo con 100 listas que guardan ints //cambia int por lo que sea que quieres guardar //cambia 100 por el número de listas que ocupas List<int>[] arreglo = new List<int>[100]; //el ciclo for trabaja con el tamaño del arreglo for (int i = 0; i < arreglo.Length; i++) { arreglo[i] = new List<int>(); Console.WriteLine("La lista #" + i + " fue creada exitosamente."); }
Aquí una prueba:
Espero que te sea de ayuda. Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice “Marcar como Respuesta”). Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.
Saludos cordiales
Gabriel Castro
____________________________
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
- Editado Gabriel Castro RModerator lunes, 28 de septiembre de 2020 20:57
- Marcado como respuesta PequeñoSaltamontes martes, 29 de septiembre de 2020 4:58
-