none
Cómo crear listas de forma automática y cómo guardar listas en arreglos. RRS feed

  • 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.


    sábado, 26 de septiembre de 2020 23:06

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")

    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

    domingo, 27 de septiembre de 2020 0:05
  • 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. 



    lunes, 28 de septiembre de 2020 20:53
    Moderador

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")

    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

    domingo, 27 de septiembre de 2020 0:05
  • 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. 



    lunes, 28 de septiembre de 2020 20:53
    Moderador
  • Gracias Gabril! super completa tu respuesta, es muy importante para mi toda esa información me la voy a guardar en un documento word. Es genial que exista la posibilidad de mezclar listas con arreglos estoy fascinado. 
    martes, 29 de septiembre de 2020 4:58