Saltar al contenido principal

Métodos y propiedades de listas en C#

Las listas en C# (List<T>) proporcionan varios métodos y propiedades útiles para administrar y manipular colecciones de elementos.


Propiedades

Count

La propiedad Count devuelve el número de elementos que hay actualmente en la lista.

List<int> numbers = new List<int> { 10, 20, 30 };
int count = numbers.Count; // Devuelve 3

Capacity

La propiedad Capacity indica el número total de elementos que la lista puede contener actualmente sin cambiar de tamaño.

List<int> numbers = new List<int>(10); // Se inicializa con una capacidad de 10
int ability = numbers.Capacity; // Devuelve 10

IsReadOnly

La propiedad IsReadOnly indica si la lista es de solo lectura, es decir, sus elementos no se pueden modificar.

List<int> numbers = new List<int> { 10, 20, 30 };
bool isReadOnly = numbers.IsReadOnly; // Devuelve falso (predeterminado)

Métodos

Add y AddRange

Puede añadir elementos a una lista con el método Add:

List<int> numbers = new List<int>();
numbers.Add(60); // Añade el número 60 al final de la lista

// También puede añadir varios elementos a la vez con el método AddRange:
numbers.AddRange(new int[] { 70, 80, 90 }); // Agrega los números 70, 80 y 90 al final de la lista

Para añadir multiples elementos a una lista AddRange:

List<int> numbers = new();
numbers.AddRange(new int[]{ 30, 40, 50})

Insert

El método Insert permite agregar un elemento en una posición específica de la lista, desplazando los elementos siguientes hacia la derecha.

List<int> numbers = new List<int> { 10, 20, 30 };
numbers.Insert(1, 15); // Inserta el número 15 en el índice 1

// Resultado de la lista: { 10, 15, 20, 30 }

Contains

El método Contains verifica si un elemento específico existe en la lista. Devuelve true si el elemento está presente, o false en caso contrario.

List<int> numbers = new List<int> { 10, 20, 30 };

bool has20 = numbers.Contains(20); // Devuelve true
bool has50 = numbers.Contains(50); // Devuelve false

IndexOf

El método IndexOf devuelve el índice de la primera aparición de un elemento en la lista. Si el elemento no existe, devuelve -1.

List<int> numbers = new List<int> { 10, 20, 30, 20 };

int index1 = numbers.IndexOf(20); // Devuelve 1 (primer 20 encontrado)
int index2 = numbers.IndexOf(50); // Devuelve -1 (no existe en la lista)

firstNumber

Puede acceder a los elementos de una lista mediante el índice, al igual que con los arrays:

List<int> numbers = new List<int> { 10, 20, 30 };
int firstNumber = numbers[0]; // Accede al primer elemento (10)

Find y FindAll

Puede buscar elementos en una lista mediante el método Find, que devuelve el primer elemento que cumple la condición especificada:

List<int> numbers = new List<int> { 10, 20, 30 };
int result = numbers.Find(number => number > 20); // Encuentra el primer elemento mayor que 20

Para encontrar todos los elementos que cumplen una condición, puede usar el método FindAll:

List<int> numbers = new List<int> { 10, 20, 30 };
List<int> results = numbers.FindAll(number => number > 20); // Encuentra todos los elementos mayores que 20

Modificar elementos en una lista

Puede modificar los elementos de una lista accediendo a ellos a través de su índice:

List<int> numbers = new List<int> { 10, 20, 30 };
numbers[0] = 100; // Cambia el primer elemento de 10 a 100

Sort

Puede ordenar los elementos de una lista con el método Sort:

List<int> numbers = new List<int> { 30, 10, 20 };
numbers.Sort(); // Ordena la lista en orden ascendente (10, 20, 30)

Remove, RemoveAt y RemoveAll

Puede eliminar elementos de una lista con el método Remove (que elimina la primera ocurrencia de un valor especificado):

List<int> numbers = new List<int> { 10, 20, 30 };
numbers.Remove(30); // Elimina la primera ocurrencia del valor 30

También puede eliminar elementos por su índice usando el método RemoveAt:

List<int> numbers = new List<int> { 10, 20, 30 };
numbers.RemoveAt(1); // Elimina el elemento en el índice 1 (20)

Para eliminar todos los elementos de la lista que cumplen una condición, puede usar el método RemoveAll:

List<int> numbers = new List<int> { 10, 20, 30, 40, 50 };
numbers.RemoveAll(number => number > 30); // Elimina todos los elementos mayores de 30