AYUDA .NET

Lista C# (Cómo funciona para los desarrolladores)

Actualizado 6 de junio, 2023
Compartir:

Introducción

Las listas son estructuras de datos versátiles y dinámicas que se utilizan para almacenar y manipular colecciones de datos en C#. Las listas forman parte del espacio de nombres System.Collections.Generic, que proporciona una serie de clases de colección potentes y seguras y objetos fuertemente tipados. Este tutorial para principiantes le guiará a través de los conceptos básicos del uso de listas en C#, incluyendo cómo crear/añadir elementos, acceder al índice especificado o a la primera ocurrencia, modificar el elemento especificado y eliminar elementos, así como algunos casos de uso comunes.

Creación de listas

Para empezar a utilizar la clase List, primero necesitas incluir el espacio de nombres genérico System.Collections en tu código:

using System.Collections.Generic;
using System.Collections.Generic;
Imports System.Collections.Generic
VB   C#

Después de añadir un espacio de nombres genérico, crea un nuevo objeto List especificando el tipo de datos de todos los elementos que quieras almacenar entre corchetes angulares (< >). He aquí un ejemplo de cómo crear una lista de números enteros:

List numbers = new List();
List numbers = new List();
Dim numbers As New List()
VB   C#

También puede insertar elementos a una lista con algunos valores iniciales o definidos por la colección especificada de esta manera:

List fruits = new List { "apple", "banana", "cherry" };
List fruits = new List { "apple", "banana", "cherry" };
Dim fruits As New List From {"apple", "banana", "cherry"}
VB   C#

También podemos especificar la capacidad inicial por defecto de la lista en el ejemplo anterior. La capacidad inicial especificada es la capacidad máxima por defecto de la lista.

Métodos de lista

Añadir número de elementos a una lista

Para añadir elementos a su estructura de datos interna Lista, utilice la función Añadir() método:

numbers.Add(1);     //  añade el primer elemento
numbers.Add(2);
numbers.Add(3);
numbers.Add(1);     //  añade el primer elemento
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) '  añade el primer elemento
numbers.Add(2)
numbers.Add(3)
VB   C#

También puede añadir un rango de elementos de la colección especificada a la lista utilizando el método AddRange:

List moreNumbers = new List { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List moreNumbers = new List { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List From {4, 5, 6}
numbers.AddRange(moreNumbers)
VB   C#

Acceso a los elementos de la lista

Puedes acceder a elementos individuales de una lista utilizando un índice, igual que con las matrices:

string firstFruit = fruits [0];          //  "manzana"
string secondFruit = fruits [1];         //  "plátano"
string firstFruit = fruits [0];          //  "manzana"
string secondFruit = fruits [1];         //  "plátano"
Dim firstFruit As String = fruits (0) '  "manzana"
Dim secondFruit As String = fruits (1) '  "plátano"
VB   C#

Tenga en cuenta que las listas tienen un índice basado en cero, por lo que el primer elemento tiene un índice de 0. Si el elemento existe, el ejemplo anterior almacenará ese elemento en la cadena.

Modificación de los elementos de la lista

Para modificar un elemento de una lista, basta con asignar un nuevo valor al elemento en el índice deseado teniendo en cuenta el índice basado en cero:

fruits [1] = "blueberry";
fruits [1] = "blueberry";
fruits (1) = "blueberry"
VB   C#

Ahora, el segundo elemento de la lista de frutas es "arándano" en lugar de "plátano".

Eliminar elementos de una lista

Para eliminar un elemento de una lista, puede utilizar el método Remove, que elimina la primera aparición de un elemento especificado:

fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
VB   C#

Alternativamente, puede utilizar el método RemoveAt para eliminar un elemento en el índice especificado si el elemento existe:

fruits.RemoveAt(0);
fruits.RemoveAt(0);
fruits.RemoveAt(0)
VB   C#

Para eliminar todos los elementos de una lista, utilice el método Clear:

fruits.Clear();
fruits.Clear();
fruits.Clear()
VB   C#

Búsqueda de elementos en una lista

Puede utilizar la función Contiene() para comprobar si una lista contiene un elemento específico:

bool containsApple = fruits.Contains("apple");      //  verdadero
bool containsApple = fruits.Contains("apple");      //  verdadero
Dim containsApple As Boolean = fruits.Contains("apple") '  verdadero
VB   C#

Para encontrar el índice de la primera aparición de un elemento, utilice el método IndexOf:

int appleIndex = fruits.IndexOf("apple");           //  0
int appleIndex = fruits.IndexOf("apple");           //  0
Dim appleIndex As Integer = fruits.IndexOf("apple") '  0
VB   C#

Si no se encuentra el elemento, IndexOf devuelve -1.

Recorrer una lista en bucle

Para recorrer los elementos de una lista, puedes utilizar un bucle foreach. Usando el bucle foreach, también puedes acceder a todos los elementos del array.

foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
foreach (string fruit in fruits)
{
    Console.WriteLine(fruit);
}
For Each fruit As String In fruits
	Console.WriteLine(fruit)
Next fruit
VB   C#

Alternativamente, puede utilizar un bucle for con la propiedad Count, que devuelve el número de elementos de la lista:

for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits [i]);
}
for (int i = 0; i < fruits.Count; i++)
{
    Console.WriteLine(fruits [i]);
}
For i As Integer = 0 To fruits.Count - 1
	Console.WriteLine(fruits (i))
Next i
VB   C#

Ordenar una lista

Para ordenar una lista en orden ascendente, utilice el método Sort:

List unsortedNumbers = new List { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

//  Ahora, unsortedNumbers es { 1, 2, 4, 5, 8 }
List unsortedNumbers = new List { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();

//  Ahora, unsortedNumbers es { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()

'  Ahora, unsortedNumbers es { 1, 2, 4, 5, 8 }
VB   C#

Para ordenar una lista en orden descendente, puede utilizar el método Sort con un delegado de predicado personalizado especificado por comparación:

unsortedNumbers.Sort((a, b) => b.CompareTo(a));

//  Ahora, unsortedNumbers es { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));

//  Ahora, unsortedNumbers es { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))

'  Ahora, unsortedNumbers es { 8, 5, 4, 2, 1 }
VB   C#

Para una ordenación más compleja, puede implementar una clase IComparer personalizada o utilizar LINQ (Consulta lingüística integrada). El algoritmo de búsqueda binaria funciona en listas ordenadas.

Uso de LINQ con listas

LINQ permite realizar potentes consultas y transformaciones en colecciones, incluidas las listas. Para utilizar LINQ, primero debe incluir el espacio de nombres System.Linq en el código del programa de su clase:

using System.Linq;
using System.Linq;
Imports System.Linq
VB   C#

He aquí algunos ejemplos de consultas LINQ sobre una lista:

Filtrar una lista

List evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List = numbers.Where(Function(x) x Mod 2 = 0).ToList()
VB   C#

Asignación (transformación) de elementos de una lista

List fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List = fruits.Select(Function(x) x.ToUpper()).ToList()
VB   C#

Encontrar los valores mínimo y máximo de una lista

int minValue = numbers.Min();
int maxValue = numbers.Max();
int minValue = numbers.Min();
int maxValue = numbers.Max();
Dim minValue As Integer = numbers.Min()
Dim maxValue As Integer = numbers.Max()
VB   C#

Convertir una lista en una matriz

Para convertir una lista en un array, puedes utilizar el método ToArray:

int [] numbersArray = numbers.ToArray();
int [] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
VB   C#

Exportación de datos de listas a un PDF con IronPDF

En esta sección, mostraremos cómo exportar los datos de una Lista a un archivo PDF utilizando la función Biblioteca IronPDF. Esto puede ser útil cuando desee generar un informe o una versión imprimible de sus datos.

En primer lugar, descargue e instale el paquete IronPDF NuGet en su proyecto:

Install-Package IronPdf

A continuación, incluye el espacio de nombres IronPdf en tu código:

using IronPdf;
using IronPdf;
Imports IronPdf
VB   C#

Ahora, vamos a crear una función sencilla que convierta una Lista de cadenas en una tabla HTML y luego la exporte a un archivo PDF:

using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List data, string pdfFilePath)
{
    //  Crear una tabla HTML a partir de los datos de la lista
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("Item");

    foreach (string item in data)
    {
        htmlBuilder.Append($"{item}");
    }

    htmlBuilder.Append("");

    //  Convertir la tabla HTML en un PDF utilizando IronPDF objeto especificado
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    //  Guardar el PDF en la ruta de archivo especificada
    pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List data, string pdfFilePath)
{
    //  Crear una tabla HTML a partir de los datos de la lista
    StringBuilder htmlBuilder = new StringBuilder();
    htmlBuilder.Append("Item");

    foreach (string item in data)
    {
        htmlBuilder.Append($"{item}");
    }

    htmlBuilder.Append("");

    //  Convertir la tabla HTML en un PDF utilizando IronPDF objeto especificado
    var renderer = new ChromePdfRenderer();
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());

    //  Guardar el PDF en la ruta de archivo especificada
    pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports IronPdf
Imports System.Text
Private Sub ExportListToPdf(ByVal data As List, ByVal pdfFilePath As String)
	'  Crear una tabla HTML a partir de los datos de la lista
	Dim htmlBuilder As New StringBuilder()
	htmlBuilder.Append("Item")

	For Each item As String In data
		htmlBuilder.Append($"{item}")
	Next item

	htmlBuilder.Append("")

	'  Convertir la tabla HTML en un PDF utilizando IronPDF objeto especificado
	Dim renderer = New ChromePdfRenderer()
	Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())

	'  Guardar el PDF en la ruta de archivo especificada
	pdf.SaveAs(pdfFilePath)
End Sub
VB   C#

Para utilizar esta función en el ejemplo anterior, sólo tiene que llamarla con su lista y la ruta deseada del archivo PDF:

List fruits = new List { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List fruits = new List { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
VB   C#

Esto generará un archivo PDF llamado "Fruits.pdf" que contiene una tabla con la lista de capacidad predeterminada de frutas por convertir HTML a PDF que cumpla las condiciones definidas. Puede modificar la función ExportListToPdf para adaptarla a sus necesidades, como añadir un estilo personalizado a la tabla HTML o contenido adicional al PDF.

Lista C# (Cómo funciona para desarrolladores) Figura 1 - HTML a PDF

Conclusión

En este tutorial para principiantes, cubrimos los fundamentos del uso de Listas en C# y demostramos cómo integrar IronPDF para exportar datos de Listas a un archivo PDF. Mediante la incorporación de IronPDF en sus proyectos, puede generar fácilmente informes, facturas u otros documentos imprimibles de su C#

IronPDF ofrece un prueba gratuita para que puedas probar sus prestaciones antes de comprometerte a comprarlo. Si decide seguir utilizando IronPDF después del período de prueba, la licencia comienza a partir de $749, con múltiples opciones de licencia disponibles para adaptarse a sus necesidades.

< ANTERIOR
C# This (Cómo funciona para los desarrolladores)
SIGUIENTE >
Qué es Visual Studio (cómo funciona para los desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123