Las listas en C# (C# lists) son un tipo de datos nativo del framework de .NET que nos permite almacenar una secuencia de variables. Por ejemplo, si queremos gestionar un conjunto de nombres de personas, podríamos utilizar una variable de tipo List<string>, que se correspondería con una lista de strings en la sintaxis C#.
1 | List<string> personNames; |
Este objeto List en C# es tipado. Es decir, como hemos visto en el ejemplo, cuando creamos una lista le podemos decir qué tipo de objetos va contener (strings, números, o tipo T). Cuando hablamos de tipo «T», nos referimos a cualquier tipo de objetos que hayamos definido en nuestro código fuente 🙂
Inicializando una lista
Para inicializar una lista en C#, es tan sencillo como utilizar la keyword List, seguido del tipo de dato que va a contener dicha lista entre los símbolos <>. A continuación, debemos utilizar el constructor de List como si de cualquier otro objeto C# se tratase.
1 | List<string> personNames = new List<string>(); |
Una vez hemos construido nuestro objeto Lista, ya podemos comenzar a utilizarla. En primer lugar, vamos a añadir unos cuántos nombres de personas:
1 2 | personNames.Add("Kevin"); personNames.Add("Borja"); |
A partir de este momento, nuestra lista contiene dos elementos (Kevin y Borja).
Inicialización de una lista en línea (list inline initialization)
En el ejemplo anterior vimos como inicializamos una lista, y después le vamos añadiendo tantos elementos como necesitemos. Otra forma muy legible de inicializar una lista en una única línea es utilizar el inicializador inline que nos proporciona el .NET framework:
1 2 3 | List<string> morePersonNames = new List<string>() { "Persona 1", "Persona 2", "Persona 3" }; |
En este caso, hemos creado otra lista distinta a la que hemos añadido tres strings, utilizando la inicialización inline del objeto List.
Ahora vamos a ver cómo podemos añadir y eliminar objetos de una lista en C#.
Añadir elementos en una lista C#
En los ejemplos anteriores ya hemos visto una de las dos formas de añadir elementos a una lista en C#. Esta primera forma que vamos a ver consiste en usar la función Add del objeto List, y que añadirá el elemento al final de la lista.
1 2 3 | List<string> personNames = new List<string>(); personNames.Add("Kevin"); personNames.Add("Borja"); |
Pero si investigamos un poco en las funciones que nos permite usar el objeto List, tenemos otra forma de añadir elementos que es a través de la función Insert. En este caso, la función Insert también nos pide la posición (índice) donde queremos insertar el elemento. Por ejemplo, si quisiéramos añadir un elemento al principio de nuestra lista de personNames, utilizaríamos la siguiente función:
1 | personNames.Insert(0, "Pepito"); |
De esta forma, nuestra lista estaría formada por tres nombres: Pepito, Kevin y Borja (en este orden). Esto es importante si el orden de los elementos dentro de la lista es relevante.
Eliminar elementos
Al igual que hay varias formas de añadir elementos, también tenemos distintas maneras de eliminar un elemento de una lista. La primera y más sencilla forma es utilizar la función Remove que nos proporciona List. Le pasamos el elemento que queramos eliminar, y lo sacará de nuestra lista:
1 | personNames.Remove("Pepito"); |
De esta forma, al haber eliminado a Pepito de la lista de nombres, nos volvemos a quedar con dos elementos (Kevin y Borja).
Si a la función Remove le pasamos un parámetro que no exista en nuestra lista, no ocurre nada 🙂 Por ejemplo:
1 | personNames.Remove("No existe!"); |
Tras esta operación, nuestra lista de nombres seguirá conteniendo a Kevin y a Borja.
La segunda forma de eliminar objetos de una lista es utilizar RemoveAt. En este caso, le diremos qué posición (índice) de la lista queremos eliminar. Si por ejemplo queremos eliminar el primer objeto, utilizamos lo siguiente:
1 | personNames.RemoveAt(0); |
Con esto, eliminaríamos el primer elemento de nuestra lista (Kevin), y tan solo nos quedaría un elemento (Borja).
Ordenar elementos en una lista
En los ejemplos anteriores, comentamos que los elementos dentro de una lista ocupan la posición en la que se añadieron a través de las funciones Add o Insert.
Esto es así, pero también existe la posibilidad de ordenar una lista de elementos a través de la función Sort. Esto ordenará los elementos de la lista en sentido ascendente (de la A a la Z en el caso de strings, o de más pequeño a más grande en el caso de números).
1 | personNames.Sort(); |
También es posible ordenar por otros criterios utilizando funciones anónimas, pero esto lo cubriremos en otro artículo 🙂
Conclusión
En este artículo hemos cubierto el uso de Lists en C#. Primero vimos conceptualmente qué es una lista, y después explicamos cómo crear listas y utilizar las funciones que nos ofrece la interfaz List de C# (añadir, eliminar y ordenar).
Esperamos que os haya gustado el artículo 🙂
Hermano super practico si subes contenido sobre el bucle for seras dios jajaj saludos!