En C#, List es una colección genérica que se utiliza para almacenar elementos u objetos en forma de lista y se define en el espacio de nombres System.Collection.Generic . Proporciona la misma funcionalidad que ArrayList , pero solo hay una diferencia, es decir, una lista es genérica mientras que ArrayList es una colección no genérica. Es de naturaleza dinámica, lo que significa que el tamaño de la lista crece, según la necesidad.
Puntos importantes:
- La clase List implementa la interfaz ICollection<T>, IEnumerable<T>, IList<T>, IReadOnlyCollection<T>, IReadOnlyList<T>, ICollection, IEnumerable e IList.
- Puede aceptar nulo como un valor válido para los tipos de referencia y también permite elementos duplicados.
- Si Count se vuelve igual a Capacity, entonces la capacidad de List aumentó automáticamente al reasignar el arreglo interno. Los elementos existentes se copiarán en la nueva array antes de agregar el nuevo elemento.
- Los elementos presentes en la lista no se ordenan de forma predeterminada y se accede a los elementos mediante un índice de base cero.
¿Cómo crear una Lista?
Una clase List tiene 3 constructores que se utilizan para crear una lista y los constructores son los siguientes:
- List<T>(): este constructor se usa para crear una instancia de la clase List<T> que está vacía y tiene la capacidad inicial predeterminada.
- List<T>(IEnumerable): este constructor se usa para crear una instancia de la clase List<T> que contiene elementos copiados de la colección especificada y tiene capacidad suficiente para acomodar la cantidad de elementos copiados.
- List<T>(Int32): este constructor se usa para crear una instancia de la clase List<T> que está vacía y tiene la capacidad inicial especificada.
Veamos cómo crear una lista usando el constructor List<T>() :
Paso 1: Incluya el espacio de nombres System.Collection.Generics en su programa con la ayuda del uso de palabras clave.
using System.Collections.Generic;
Paso 2: Cree una lista usando la clase List<T> como se muestra a continuación:
List list_name = new List();
Paso 3: si desea agregar elementos en su lista, la clase List<T> proporciona dos métodos diferentes y los métodos son:
- Add(T) : este método se usa para agregar un objeto al final de List<T>.
- AddRange(IEnumerable<T>) : este método se usa para agregar los elementos de la colección especificada al final de List<T>.
Nota: También puede agregar elementos usando inicializadores de colección. Como se muestra a continuación ejemplo:
Ejemplo:
// Creando una lista usando la clase List
// y agregando elementos usando los
// inicializadores de la colección
List<string> my_list1 = new List<string>() { “geeks”, “Geek123”, “GeeksforGeeks” };
Paso 4: Puede acceder a los elementos de la lista utilizando las siguientes formas:
- Usando el bucle foreach: Puede usar el bucle foreach para acceder a los elementos/objetos de la Lista.
Ejemplo:
// Accediendo a elementos de my_list
// Usando foreach loop
foreach(int a in my_list)
{
Console.WriteLine(a);
}
- Uso del método ForEach(): este método se usa para realizar la acción especificada en cada elemento de List<T> .
Ejemplo:
// Accediendo a elementos de my_list
// Usando el método
ForEach my_list.ForEach(a = > Console.WriteLine(a));
- Usando for loop: Puede usar for loop para acceder a los elementos/objetos de la Lista.
Ejemplo:
// Accediendo a elementos de my_list
// Usando for loop
for (int a = 0; a < my_list.Count; a++)
{
Console.WriteLine(my_list[a]);
}
- Uso de indexadores: Puede usar indexadores para acceder a los elementos/objetos de la Lista.
Ejemplo:
// Acceso a elementos de my_list
// Uso de indexadores
Console.WriteLine(my_list[3]);
Console.WriteLine(mi_lista[4]);
Ejemplo:
C#
// C# program to illustrate how // to create a list using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating list using List class // and List<T>() Constructor List<int> my_list = new List<int>(); // Adding elements to List // Using Add() method my_list.Add(1); my_list.Add(10); my_list.Add(100); my_list.Add(1000); my_list.Add(10000); my_list.Add(100000); my_list.Add(1000000); // Accessing elements of my_list // Using foreach loop foreach(int a in my_list) { Console.WriteLine(a); } } }
1 10 100 1000 10000 100000 1000000
¿Cómo eliminar elementos de la Lista?
Puede eliminar los elementos de la lista utilizando los siguientes métodos proporcionados por la clase List<T>:
- Eliminar (T) : este método se utiliza para eliminar la primera aparición de un objeto específico de la lista.
- RemoveAll(Predicate<T>) : este método se usa para eliminar todos los elementos que coinciden con las condiciones definidas por el predicado especificado.
- RemoveAt(Int32) : Este método se utiliza para eliminar el elemento en el índice especificado de la Lista.
- RemoveRange(Int32, Int32) : este método se utiliza para eliminar un rango de elementos de List<T>.
- Clear() : este método se utiliza para eliminar todos los elementos de List<T>.
Ejemplo:
C#
// C# program to illustrate how // to remove objects from the list using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating list using List class // and List<T>() Constructor List<int> my_list = new List<int>(); // Adding elements to List // Using Add() method my_list.Add(1); my_list.Add(10); my_list.Add(100); my_list.Add(1000); my_list.Add(10000); my_list.Add(100000); my_list.Add(1000000); my_list.Add(10000000); my_list.Add(100000000); // Initial count Console.WriteLine("Initial count:{0}", my_list.Count); // After using Remove() method my_list.Remove(10); Console.WriteLine("2nd count:{0}", my_list.Count); // After using RemoveAt() method my_list.RemoveAt(4); Console.WriteLine("3rd count:{0}", my_list.Count); // After using RemoveRange() method my_list.RemoveRange(0, 2); Console.WriteLine("4th count:{0}", my_list.Count); // After using Clear() method my_list.Clear(); Console.WriteLine("5th count:{0}", my_list.Count); } }
Initial count:9 2nd count:8 3rd count:7 4th count:5 5th count:0
¿Cómo ordenar la lista?
Puede ordenar los elementos utilizando el método Sort(). Este método se usa para ordenar los elementos o una parte de los elementos en List<T> mediante la implementación de IComparer<T> predeterminada o especificada o un delegado de Comparison<T> proporcionado para comparar los elementos de la lista.
Ejemplo:
C#
// C# program to illustrate how // sort a list using System; using System.Collections.Generic; class GFG { // Main Method static public void Main() { // Creating list using List class // and List<T>() Constructor List<int> my_list = new List<int>(); // Adding elements to List // Using Add() method my_list.Add(496); my_list.Add(1000); my_list.Add(100); my_list.Add(10); my_list.Add(10000); my_list.Add(10000000); my_list.Add(1000000); my_list.Add(100000); my_list.Add(0000); // Without sorted List Console.WriteLine("UnSorted List:"); foreach(int a in my_list) { Console.WriteLine(a); } // After Sort method my_list.Sort(); Console.WriteLine("Sorted List:"); foreach(int a in my_list) { Console.WriteLine(a); } } }
UnSorted List: 496 1000 100 10 10000 10000000 1000000 100000 0 Sorted List: 0 10 100 496 1000 10000 100000 1000000 10000000
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA