Lista dinámica en C#

Hola a todos, hoy os voy a explicar como podemos crear y manejar una lista dinámica en C#.

En C#, también tenemos listas dinámicas, que básicamente array sin un tamaño fijo, lo que nos permite agregarle contenido sin preocuparnos del limite.

Podemos crearlo del tipo que nosotros queramos, ya sea un tipo primitivo como int o un objeto que hayamos creado nosotros.

La forma de crear una lista es la siguiente:


// Creamos la lista
List<Int32> numeros = new List<Int32>();

Dentro de < y > va el tipo que queréis agregar.

 

Para añadir elementos:


// Rellenamos la lista
numeros.Add(5);
numeros.Add(10);
numeros.Add(20);
numeros.Add(40);
numeros.Add(80);

La forma de recorrerlo es la siguiente:


Console.WriteLine("Contenido de la lista");
foreach (int numero in numeros)
{
    Console.WriteLine(numero);
}

Otra forma de recorrer es la siguiente:


Console.WriteLine("Otra forma de recorrerlo");
for (int i = 0; i < numeros.Count; i++)
{
    Console.WriteLine(numeros.ElementAt(i));
}

Para saber el numero de elementos:


Console.WriteLine("Numero de elementos");
Console.WriteLine(numeros.Count);

También podemos insertar elementos en una posición en concreto:


Console.WriteLine("Insertamos un nuevo numero en la posicion 2 ");
numeros.Insert(2, 15);
Console.WriteLine(numeros.ElementAt(2));


Para eliminar elementos, tenemos RemoveAt, le pasamos el indice a borrar:


Console.WriteLine("Eliminamos el numero de la primera posicion");
numeros.RemoveAt(0);
Console.WriteLine(numeros.ElementAt(0));

En nuestro caso, como es una lista dinámica de números, podemos sumar los elementos:


Console.WriteLine("Suma de los numeros");
Console.WriteLine(numeros.Sum());

También podemos hacer una media:


Console.WriteLine("Media de los numeros");
Console.WriteLine(numeros.Average());

Para actualizar un elemento de una lista, no tenemos un método, pero si podemos hacer lo siguiente:

 


Console.WriteLine("Actualizamos el primer elemento");
int indice = 0;
numeros.Insert(indice, 3);
numeros.RemoveAt(indice + 1);

Limpiamos la lista:


Console.WriteLine("Limpiamos la lista");
numeros.Clear();

Os dejo el ejemplo completo:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ListaDinamica
{
    class Program
    {
        static void Main(string[] args)
        {

            // Creamos la lista
            List<Int32> numeros = new List<Int32>();

            // Rellenamos la lista
            numeros.Add(5);
            numeros.Add(10);
            numeros.Add(20);
            numeros.Add(40);
            numeros.Add(80);

            Console.WriteLine("Contenido de la lista");
            foreach (int numero in numeros)
            {
                Console.WriteLine(numero);
            }

            Console.WriteLine("Otra forma de recorrerlo");
            for (int i = 0; i < numeros.Count; i++)
            {
                Console.WriteLine(numeros.ElementAt(i));
            }

            Console.WriteLine("Numero de elementos");
            Console.WriteLine(numeros.Count);

            Console.WriteLine("Insertamos un nuevo numero en la posicion 2 ");
            numeros.Insert(2, 15);
            Console.WriteLine(numeros.ElementAt(2));

            Console.WriteLine("Contenido de la lista");
            foreach (int numero in numeros)
            {
                Console.WriteLine(numero);
            }

            Console.WriteLine("Numero de elementos");
            Console.WriteLine(numeros.Count);

            Console.WriteLine("Eliminamos el numero de la primera posicion");
            numeros.RemoveAt(0);
            Console.WriteLine(numeros.ElementAt(0));

            Console.WriteLine("Contenido de la lista");
            foreach (int numero in numeros)
            {
                Console.WriteLine(numero);
            }

            Console.WriteLine("Suma de los numeros");
            Console.WriteLine(numeros.Sum());

            Console.WriteLine("Media de los numeros");
            Console.WriteLine(numeros.Average());
       
            Console.WriteLine("Actualizamos el primer elemento");
            int indice = 0;
            numeros.Insert(indice, 3);
            numeros.RemoveAt(indice + 1);

            Console.WriteLine("Contenido de la lista");
            foreach (int numero in numeros)
            {
                Console.WriteLine(numero);
            }

            Console.WriteLine("Limpiamos la lista");
            numeros.Clear();

            Console.WriteLine("Contenido de la lista despues de limpiar");
            foreach (int numero in numeros)
            {
                Console.WriteLine(numero);
            }

            Console.ReadLine();
        }
    }
}


Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *