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