List
En C#, la clase List<T>
se encuentra en el espacio de nombres System.Collections.Generic
y proporciona una implementación dinámica de una lista genérica. Aquí tienes una explicación del tipo List<T>
, su definición, uso y algunos de los métodos más útiles con ejemplos:
Definición y Uso de List<T>
:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
// Definición de una lista de enteros
List<int> numeros = new List<int>();
// Agregar elementos a la lista
numeros.Add(1);
numeros.Add(2);
numeros.Add(3);
// Acceder a elementos por índice
int primerNumero = numeros[0];
Console.WriteLine($"Primer número: {primerNumero}");
// Iterar a través de la lista con foreach
foreach (int numero in numeros)
{
Console.WriteLine(numero);
}
}
}
Métodos Útiles de List<T>
:
1. Add(T item)
Añade un elemento al final de la lista.
List<string> frutas = new List<string>();
frutas.Add("Manzana");
frutas.Add("Plátano");
frutas.Add("Fresa");
// Resultado: {"Manzana", "Plátano", "Fresa"}
2. Remove(T item)
Elimina la primera aparición de un elemento específico de la lista.
frutas.Remove("Plátano");
// Resultado: {"Manzana", "Fresa"}
3. Count
Obtiene el número de elementos en la lista.
int cantidadFrutas = frutas.Count;
// Resultado: 2
4. Contains(T item)
Determina si la lista contiene un elemento específico.
bool contieneFresa = frutas.Contains("Fresa");
// Resultado: true
5. IndexOf(T item)
Devuelve el índice de la primera aparición de un elemento específico en la lista.
int indiceManzana = frutas.IndexOf("Manzana");
// Resultado: 0
6. Sort()
Ordena los elementos en la lista.
frutas.Sort();
// Resultado: {"Fresa", "Manzana"}
7. Clear()
Elimina todos los elementos de la lista.
frutas.Clear();
// Resultado: Lista vacía
8. ToArray()
Convierte la lista en un array.
string[] arrayFrutas = frutas.ToArray();
// Resultado: {"Fresa", "Manzana"}
Estos son solo algunos de los métodos disponibles en la clase List<T>
. La clase proporciona una amplia variedad de operaciones que facilitan la manipulación dinámica de colecciones en C#. Puedes encontrar más información en la documentación oficial de Microsoft.
Para ordenar una lista en C# con un comparador propio, puedes utilizar el método Sort()
de la clase List<T>
. El método Sort()
toma un objeto IComparer<T>
como argumento, que se utiliza para comparar los elementos de la lista. Aquí hay un ejemplo:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
public class PersonComparer : IComparer<Person>
{
public int Compare(Person x, Person y)
{
return x.Age.CompareTo(y.Age);
}
}
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 20 }
};
people.Sort(new PersonComparer());
foreach (Person person in people)
{
Console.WriteLine($"{person.Name} ({person.Age})");
}
En este ejemplo, se define una clase Person
que tiene propiedades Name
y Age
. Se define una clase PersonComparer
que implementa la interfaz IComparer<Person>
y compara dos objetos Person
en función de su edad. Se crea una lista de objetos Person
y se utiliza el método Sort()
para ordenar la lista utilizando el comparador personalizado PersonComparer
. Finalmente, se recorre la lista ordenada y se imprime el nombre y la edad de cada persona.