En el desarrollo de software, es común trabajar con colecciones de datos. Estas colecciones nos permiten almacenar y manipular múltiples elementos de manera eficiente. En C#, una de las colecciones más utilizadas es la lista genérica, implementada a través de la clase `List
¿Qué es una lista genérica en C#?
Una lista genérica en C# es una estructura de datos que nos permite almacenar y manipular una colección de elementos del mismo tipo. La lista genérica es una mejora de la lista no genérica (`ArrayList`), ya que nos proporciona mayor seguridad en tiempo de compilación y mejor rendimiento.
La lista genérica se declara utilizando la clase `List
Declaración y creación de una lista genérica
Para declarar y crear una lista genérica en C#, utilizamos la siguiente sintaxis:
«`csharp
List
«`
Donde `T` representa el tipo de elementos que queremos almacenar en la lista y `nombreLista` es el nombre que le damos a nuestra lista.
Por ejemplo, si queremos crear una lista de enteros, utilizaremos la siguiente sintaxis:
«`csharp
List
«`
Si queremos crear una lista de cadenas de texto, utilizaremos la siguiente sintaxis:
«`csharp
List
«`
Agregar elementos a una lista genérica
Una vez que hemos creado una lista genérica, podemos agregar elementos a ella utilizando el método `Add()`.
«`csharp
nombreLista.Add(elemento);
«`
Donde `nombreLista` es el nombre de nuestra lista y `elemento` es el valor que queremos agregar.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos agregar el número 5, utilizaremos la siguiente sintaxis:
«`csharp
numeros.Add(5);
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos agregar la palabra «hola», utilizaremos la siguiente sintaxis:
«`csharp
palabras.Add(«hola»);
«`
Podemos agregar tantos elementos como queramos a nuestra lista utilizando el método `Add()`.
Acceder a elementos de una lista genérica
Para acceder a los elementos de una lista genérica en C#, utilizamos el índice del elemento que queremos obtener.
«`csharp
T elemento = nombreLista[indice];
«`
Donde `nombreLista` es el nombre de nuestra lista, `T` es el tipo de elementos que contiene la lista y `indice` es la posición del elemento que queremos obtener.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos obtener el primer elemento, utilizaremos la siguiente sintaxis:
«`csharp
int primerNumero = numeros[0];
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos obtener el tercer elemento, utilizaremos la siguiente sintaxis:
«`csharp
string tercerPalabra = palabras[2];
«`
Es importante tener en cuenta que los índices en C# comienzan desde 0, por lo que el primer elemento de una lista tiene un índice de 0, el segundo elemento tiene un índice de 1, y así sucesivamente.
Modificar elementos de una lista genérica
Para modificar un elemento de una lista genérica en C#, utilizamos el índice del elemento que queremos modificar y asignamos un nuevo valor.
«`csharp
nombreLista[indice] = nuevoValor;
«`
Donde `nombreLista` es el nombre de nuestra lista, `indice` es la posición del elemento que queremos modificar y `nuevoValor` es el valor que queremos asignar.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos modificar el segundo elemento para que sea 10, utilizaremos la siguiente sintaxis:
«`csharp
numeros[1] = 10;
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos modificar el cuarto elemento para que sea «adiós», utilizaremos la siguiente sintaxis:
«`csharp
palabras[3] = «adiós»;
«`
Eliminar elementos de una lista genérica
Para eliminar un elemento de una lista genérica en C#, utilizamos el método `Remove()`.
«`csharp
nombreLista.Remove(elemento);
«`
Donde `nombreLista` es el nombre de nuestra lista y `elemento` es el valor que queremos eliminar.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos eliminar el número 5, utilizaremos la siguiente sintaxis:
«`csharp
numeros.Remove(5);
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos eliminar la palabra «hola», utilizaremos la siguiente sintaxis:
«`csharp
palabras.Remove(«hola»);
«`
También podemos eliminar un elemento utilizando su índice en la lista utilizando el método `RemoveAt()`.
«`csharp
nombreLista.RemoveAt(indice);
«`
Donde `nombreLista` es el nombre de nuestra lista y `indice` es la posición del elemento que queremos eliminar.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos eliminar el segundo elemento, utilizaremos la siguiente sintaxis:
«`csharp
numeros.RemoveAt(1);
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos eliminar el tercer elemento, utilizaremos la siguiente sintaxis:
«`csharp
palabras.RemoveAt(2);
«`
Recorrer una lista genérica
Para recorrer una lista genérica en C#, podemos utilizar un bucle `foreach`.
«`csharp
foreach (T elemento in nombreLista)
{
// Hacer algo con el elemento
}
«`
Donde `nombreLista` es el nombre de nuestra lista y `T` es el tipo de elementos que contiene la lista.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos imprimir cada número en la consola, utilizaremos la siguiente sintaxis:
«`csharp
foreach (int numero in numeros)
{
Console.WriteLine(numero);
}
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos imprimir cada palabra en la consola, utilizaremos la siguiente sintaxis:
«`csharp
foreach (string palabra in palabras)
{
Console.WriteLine(palabra);
}
«`
Ordenar una lista genérica
Para ordenar una lista genérica en C#, podemos utilizar el método `Sort()`.
«`csharp
nombreLista.Sort();
«`
Donde `nombreLista` es el nombre de nuestra lista.
Por ejemplo, si tenemos una lista de enteros llamada `numeros` y queremos ordenarla de forma ascendente, utilizaremos la siguiente sintaxis:
«`csharp
numeros.Sort();
«`
Si tenemos una lista de cadenas de texto llamada `palabras` y queremos ordenarla de forma alfabética, utilizaremos la siguiente sintaxis:
«`csharp
palabras.Sort();
«`
También podemos utilizar el método `Sort()` con un comparador personalizado para ordenar la lista de acuerdo a nuestras necesidades.
Conclusiones
Una lista genérica en C# es una estructura de datos que nos permite almacenar y manipular una colección de elementos del mismo tipo. Utilizando la clase `List