Listas en C#

En C#, una lista (List) es una estructura de datos que permite almacenar una colección de elementos del mismo tipo en orden secuencial. A diferencia de los arrays, las listas no tienen un tamaño fijo y se pueden agregar o eliminar elementos de forma dinámica.

Además, las listas proporcionan una serie de métodos para trabajar con sus elementos, como agregar, eliminar, buscar, ordenar, etc.

Crear listas en C#

Para crear una lista en C# se utiliza la clase List<T>, donde T es el tipo de datos que contendrá la lista.

La sintaxis básica para crear una lista en C# es la siguiente:


List<T> lista = new List<T>();
Lenguaje del código: PHP (php)

donde T representa el tipo de datos que se almacenará en la lista. Por ejemplo, si se desea almacenar enteros, se utilizará List<int>, si se desea almacenar cadenas de texto, se utilizará List<string>, etc.

También se puede inicializar una lista con elementos utilizando la siguiente sintaxis:


List<T> lista = new List<T>() { elemento1, elemento2, elemento3, ... };
Lenguaje del código: PHP (php)

donde elemento1, elemento2, elemento3, etc. son los elementos que se desean agregar a la lista.

La primera es usando la palabra clave new y la segunda es usando la sintaxis de inicialización de colección. Aquí hay un ejemplo de cada una:

  1. Sintaxis con new:

List<string> miLista = new List<string>();
miLista.Add("Manzana");
miLista.Add("Plátano");
miLista.Add("Naranja");

Lenguaje del código: C# (cs)

En este ejemplo, se crea una nueva lista de tipo string utilizando la palabra clave new. Luego se agregan tres elementos a la lista utilizando el método Add().

  1. Sintaxis de inicialización de colección:

List<int> miLista = new List<int> { 1, 2, 3, 4, 5 };

Lenguaje del código: C# (cs)

En este ejemplo, se crea una nueva lista de tipo int utilizando la sintaxis de inicialización de colección. Los elementos se agregan directamente dentro de los corchetes y separados por comas. La lista resultante contendrá cinco elementos con los valores del 1 al 5.

Añadir elementos en una lista

Para añadir elementos a una lista en C#, podemos usar el método Add que pertenece a la clase List<T>. Este método añade un elemento al final de la lista.

Aquí tienes un ejemplo de cómo añadir elementos a una lista en C#:


using System;
using System.Collections.Generic;

class Program {
    static void Main(string[] args) {
        // Crear una lista de enteros vacía
        List<int> numeros = new List<int>();

        // Añadir elementos a la lista
        numeros.Add(1);
        numeros.Add(2);
        numeros.Add(3);

        // Mostrar los elementos de la lista
        foreach (int numero in numeros) {
            Console.WriteLine(numero);
        }
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, creamos una lista vacía llamada numeros que va a contener enteros. Luego añadimos tres elementos a la lista usando el método Add. Finalmente, recorremos la lista con un bucle foreach y mostramos cada elemento por pantalla.

Eliminar elementos

Existen varios métodos que se pueden utilizar para eliminar elementos de una lista en C#. Algunos de los más comunes son:

  1. Remove(): Elimina la primera aparición de un elemento en la lista.

Ejemplo:


List<string> lista = new List<string> {"manzana", "naranja", "pera", "uva"};
lista.Remove("pera");

Lenguaje del código: C# (cs)
  1. RemoveAt(): Elimina un elemento de la lista en un índice específico.

Ejemplo:


List<string> lista = new List<string> {"manzana", "naranja", "pera", "uva"};
lista.RemoveAt(2);

Lenguaje del código: C# (cs)
  1. RemoveRange(): Elimina una sección de la lista que incluye un rango de elementos, comenzando en un índice específico.

Ejemplo:


List<string> lista = new List<string> {"manzana", "naranja", "pera", "uva"};
lista.RemoveRange(1, 2);

Lenguaje del código: C# (cs)
  1. Clear(): Elimina todos los elementos de la lista.

Ejemplo:


List<string> lista = new List<string> {"manzana", "naranja", "pera", "uva"};
lista.Clear();

Lenguaje del código: C# (cs)
  1. RemoveAll(): Elimina todos los elementos de la lista que cumplen con un predicado específico.

Ejemplo:


List<int> lista = new List<int> {1, 2, 3, 4, 5};
lista.RemoveAll(n => n % 2 == 0);

Lenguaje del código: C# (cs)

Cada uno de estos métodos ofrece diferentes opciones para eliminar elementos de una lista, y es importante elegir el método que mejor se adapte a las necesidades de cada situación específica.

Aquí te dejo un ejemplo de cómo eliminar un elemento en una lista en C# utilizando el método Remove:


using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        List<int> numbers = new List<int>() { 1, 2, 3, 4, 5 };

        Console.WriteLine("Lista original:");
        PrintList(numbers);

        int numberToRemove = 3;
        numbers.Remove(numberToRemove);

        Console.WriteLine($"Lista después de eliminar {numberToRemove}:");
        PrintList(numbers);
    }

    static void PrintList(List<int> list)
    {
        foreach (int number in list)
        {
            Console.Write(number + " ");
        }
        Console.WriteLine();
    }
}

Lenguaje del código: C# (cs)

En este ejemplo, creamos una lista numbers de tipo int y le agregamos algunos elementos usando la sintaxis de inicialización de objeto.

Luego, llamamos al método Remove de la lista, pasando como argumento el número que queremos eliminar, en este caso 3.

Finalmente, imprimimos la lista original y la lista después de eliminar el elemento, utilizando un método PrintList que creamos para mostrar los elementos de la lista de una manera más ordenada.

Ordenar elementos en una lista

Para ordenar los elementos de una lista en C#, puedes utilizar el método Sort() que ordena los elementos de la lista según su valor. El método Sort() admite una sobrecarga que te permite especificar un comparador personalizado para determinar el orden de los elementos.

Aquí te dejo un ejemplo de cómo utilizar el método Sort() para ordenar una lista de números enteros en orden ascendente:


List<int> numeros = new List<int> { 3, 1, 4, 1, 5, 9, 2, 6, 5 };

numeros.Sort(); // Ordenar en orden ascendente

foreach (int numero in numeros)
{
    Console.WriteLine(numero);
}

Lenguaje del código: C# (cs)

Este código primero crea una lista de números enteros y luego llama al método Sort() para ordenarlos en orden ascendente. Finalmente, se utiliza un bucle foreach para imprimir los números ordenados en la consola.

La salida de este código será:


1
1
2
3
4
5
5
6
9

Como puedes ver, los números se han ordenado en orden ascendente.

También puedes utilizar el método Reverse() para ordenar los elementos de una lista en orden descendente:


numeros.Sort(); // Ordenar en orden ascendente
numeros.Reverse(); // Ordenar en orden descendente

foreach (int numero in numeros)
{
    Console.WriteLine(numero);
}

Lenguaje del código: C# (cs)

Este código primero ordena los números en orden ascendente y luego invierte el orden de los elementos utilizando el método Reverse(). Finalmente, se utiliza un bucle foreach para imprimir los números en orden descendente en la consola.

Curso de C# Desde Cero

Inscríbete Ahora