Compartir a través de


Aprenda a administrar recopilaciones de datos mediante la lista<T> en C#

En este tutorial introductorio se proporciona una introducción al lenguaje C# y los conceptos básicos de la clase .

En este tutorial se enseña C# de forma interactiva, con el explorador para escribir código de C# y ver los resultados de la compilación y ejecución del código. Contiene una serie de lecciones que crean, modifican y exploran colecciones y matrices. Trabaja principalmente con la clase List<T>.

Ejemplo de lista básica

Sugerencia

Cuando un bloque de fragmento de código incluye el botón "Ejecutar", ese botón abre la ventana interactiva o reemplaza el código existente en la ventana interactiva. Cuando el fragmento de código no incluye un botón "Ejecutar", puede copiar el código y agregarlo a la ventana interactiva actual.

Ejecute el código siguiente en la ventana interactiva. Reemplace <name> por el nombre y seleccione Ejecutar:

List<string> names = ["<name>", "Ana", "Felipe"];
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Ha creado una lista de cadenas de caracteres, ha agregado tres nombres a esa lista e imprimió los nombres en mayúsculas. Está usando conceptos que ha aprendido en tutoriales anteriores para recorrer en bucle la lista.

El código para mostrar nombres usa la característica de interpolación de cadenas . Cuando precede un string con el carácter $, puede incrustar código C# en la declaración de cadena. La cadena real reemplaza el código de C# por el valor que genera. En este ejemplo, se reemplaza el {name.ToUpper()} con cada nombre, convertido en letras mayúsculas, porque se llamó al método String.ToUpper.

Sigamos explorando.

Modificar el contenido de la lista

La colección que creó usa el tipo List<T>. Este tipo almacena secuencias de elementos. Especifique el tipo de los elementos entre los corchetes angulares.

Un aspecto importante de este List<T> tipo es que puede crecer o reducirse, lo que le permite agregar o quitar elementos. Puede ver los resultados al modificar el contenido después de haberlo mostrado. Agregue el código siguiente después del código que ya escribió (el bucle que imprime el contenido):

Console.WriteLine();
names.Add("Maria");
names.Add("Bill");
names.Remove("Ana");
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Ha agregado dos nombres más al final de la lista. También ha quitado uno más. La salida de este bloque de código muestra el contenido inicial y, a continuación, imprime una línea en blanco y el nuevo contenido.

List<T> permite hacer referencia también a elementos individuales por índice. Puede acceder a los elementos mediante los tokens [ y ]. Agregue el código siguiente después de lo que ya escribió y pruébelo:

Console.WriteLine($"My name is {names[0]}.");
Console.WriteLine($"I've added {names[2]} and {names[3]} to the list.");

No tiene permiso para acceder más allá del final de la lista. Puede comprobar la longitud de la lista usando la propiedad Count. Agregue el código siguiente:

Console.WriteLine($"The list has {names.Count} people in it");

Seleccione Ejecutar de nuevo para ver los resultados. En C#, los índices comienzan en 0, por lo que el índice válido más grande es uno menor que el número de elementos de la lista.

Buscar y ordenar listas

Nuestros ejemplos usan listas relativamente pequeñas, pero las aplicaciones a menudo pueden crear listas con muchos más elementos, a veces numerando en miles. Para encontrar elementos en estas colecciones más grandes, debe examinar la lista en busca de diferentes artículos. El IndexOf método busca un elemento y devuelve el índice del elemento. Si el elemento no está en la lista, IndexOf devuelve -1. Pruébelo para ver cómo funciona. Agregue el código siguiente después de lo que escribió hasta ahora:

var index = names.IndexOf("Felipe");
if (index == -1)
{
    Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
    Console.WriteLine($"The name {names[index]} is at index {index}");
}

index = names.IndexOf("Not Found");
if (index == -1)
{
    Console.WriteLine($"When an item is not found, IndexOf returns {index}");
}
else
{
    Console.WriteLine($"The name {names[index]} is at index {index}");
}

Es posible que no sepa si un elemento está en la lista, por lo que siempre debe comprobar el índice devuelto por IndexOf. Si es -1, no se encontró el elemento.

Los elementos de la lista también se pueden ordenar. El Sort método ordena todos los elementos de la lista en su orden normal (alfabéticamente para cadenas). Agregue este código y vuelva a ejecutarlo:

names.Sort();
foreach (var name in names)
{
    Console.WriteLine($"Hello {name.ToUpper()}!");
}

Listas de otros tipos

Hasta ahora, ha estado usando el tipo string en listas. Vamos a hacer un List<T> usando un tipo diferente. Vamos a crear un conjunto de números. Elimine el código que escribió hasta ahora y reemplácelo por el código siguiente:

List<int> fibonacciNumbers = [1, 1];

Que crea una lista de enteros y establece los dos primeros enteros en el valor 1. La secuencia de Fibonacci, una secuencia de números, comienza con dos 1' s. Cada número de Fibonacci siguiente se encuentra tomando la suma de los dos números anteriores. Agregue este código:

var previous = fibonacciNumbers[fibonacciNumbers.Count - 1];
var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2];

fibonacciNumbers.Add(previous + previous2);

foreach (var item in fibonacciNumbers)
{
    Console.WriteLine(item);
}

Presione Ejecutar para ver los resultados;

Desafío

Vea si puede reunir algunos de los conceptos de esta y anteriores lecciones. Expanda lo que creó hasta ahora con números de Fibonacci. Intente escribir el código para generar los primeros 20 números en la secuencia. (Como sugerencia, el número 20 de Fibonacci es 6765).

¿Se te ocurrió algo como esto?

:::code language="csharp" interactive="try-dotnet-method" source="./snippets/ListCollection/Program.cs" id="Answer":::

Con cada iteración del bucle, va a tomar los dos últimos enteros de la lista, sumarlos y agregar ese valor a la lista. El bucle se repite hasta que se agregan 20 elementos a la lista.

Ha completado el tutorial interactivo de lista, la introducción final al tutorial interactivo de C#. Puede visitar el sitio de .NET para descargar el SDK de .NET, crear un proyecto en la máquina y seguir codificando. La sección "Pasos siguientes" lo conduce de nuevo a estos tutoriales. O bien, puede continuar con el tutorial Exploración de la programación orientada a objetos con clases y objetos .

Puede obtener más información sobre las colecciones de .NET en los siguientes artículos: