Pruebe en producción sin marcas de agua.
Funciona donde lo necesite.
Obtén 30 días de producto totalmente funcional.
Ténlo en funcionamiento en minutos.
Acceso completo a nuestro equipo de asistencia técnica durante la prueba del producto
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 son parte del espacio de nombres System.Collections.Generic
, el cual proporciona una gama de clases de colección potentes y seguras por tipo, así como 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.
Para comenzar a usar 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
Después de agregar un espacio de nombres genérico, crea un nuevo objeto List
especificando el tipo de datos de todos los elementos que deseas almacenar dentro de corchetes angulares (< >). He aquí un ejemplo de cómo crear una lista de números enteros:
List<int> numbers = new List<int>();
List<int> numbers = new List<int>();
Dim numbers As New List(Of Integer)()
También puede insertar elementos en una lista con algunos valores iniciales o definidos por la colección especificada de esta manera:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
También podemos especificar la capacidad inicial predeterminada de la lista del ejemplo anterior. La capacidad inicial especificada es la capacidad máxima por defecto de la lista.
Para agregar elementos a su estructura de datos interna List, use el método Add()
:
numbers.Add(1); // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1); // adds first element
numbers.Add(2);
numbers.Add(3);
numbers.Add(1) ' adds first element
numbers.Add(2)
numbers.Add(3)
También puedes agregar una gama de elementos de una colección especificada a la lista utilizando el método AddRange
:
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
List<int> moreNumbers = new List<int> { 4, 5, 6 };
numbers.AddRange(moreNumbers);
Dim moreNumbers As New List(Of Integer) From {4, 5, 6}
numbers.AddRange(moreNumbers)
Puedes acceder a elementos individuales de una lista utilizando un índice, igual que con las matrices:
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"
string firstFruit = fruits[0]; // "apple"
string secondFruit = fruits[1]; // "banana"
Dim firstFruit As String = fruits(0) ' "apple"
Dim secondFruit As String = fruits(1) ' "banana"
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.
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"
Ahora, el segundo elemento de la lista de frutas es "arándano" en lugar de "plátano".
Para eliminar un elemento de una lista, puedes usar el método Remove
, que elimina la primera aparición de un elemento especificado:
fruits.Remove("apple");
fruits.Remove("apple");
fruits.Remove("apple")
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)
Para eliminar todos los elementos de una lista, use el método Clear
:
fruits.Clear();
fruits.Clear();
fruits.Clear()
Puede usar el método Contains()
para verificar si una lista contiene un elemento específico:
bool containsApple = fruits.Contains("apple"); // true
bool containsApple = fruits.Contains("apple"); // true
Dim containsApple As Boolean = fruits.Contains("apple") ' true
Para encontrar el índice de la primera aparición de un elemento, utiliza el método IndexOf
:
int appleIndex = fruits.IndexOf("apple"); // 0
int appleIndex = fruits.IndexOf("apple"); // 0
Dim appleIndex As Integer = fruits.IndexOf("apple") ' 0
Si el elemento no se encuentra, IndexOf
devuelve -1.
Para iterar a través de los elementos de una lista, puedes usar un bucle foreach
. Usando el bucle foreach
, también puedes acceder a todos los elementos del arreglo.
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
Alternativamente, puedes usar un bucle for
con la propiedad Count
, que devuelve el número de elementos en 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
Para ordenar una lista en orden ascendente, use el método Sort
:
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
List<int> unsortedNumbers = new List<int> { 5, 2, 8, 1, 4 };
unsortedNumbers.Sort();
// Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Dim unsortedNumbers As New List(Of Integer) From {5, 2, 8, 1, 4}
unsortedNumbers.Sort()
' Now, unsortedNumbers is { 1, 2, 4, 5, 8 }
Para ordenar una lista en orden descendente, puedes usar el método Sort
con un delegado de predicado de comparación personalizada especificado:
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort((a, b) => b.CompareTo(a));
// Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
unsortedNumbers.Sort(Function(a, b) b.CompareTo(a))
' Now, unsortedNumbers is { 8, 5, 4, 2, 1 }
Para una clasificación más compleja, puedes implementar una clase IComparer
personalizada o utilizar LINQ (Consultas Integradas en el Lenguaje). El algoritmo de búsqueda binaria funciona en listas ordenadas.
LINQ permite realizar potentes consultas y transformaciones en colecciones, incluidas las listas. Para usar LINQ, primero debes incluir el espacio de nombres System.Linq
en el código de tu clase de programa:
using System.Linq;
using System.Linq;
Imports System.Linq
He aquí algunos ejemplos de consultas LINQ sobre una lista:
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
List<int> evenNumbers = numbers.Where(x => x % 2 == 0).ToList();
Dim evenNumbers As List(Of Integer) = numbers.Where(Function(x) x Mod 2 = 0).ToList()
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
List<string> fruitNamesUpperCase = fruits.Select(x => x.ToUpper()).ToList();
Dim fruitNamesUpperCase As List(Of String) = fruits.Select(Function(x) x.ToUpper()).ToList()
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()
Para convertir una lista en un array, puedes usar el método ToArray
:
int[] numbersArray = numbers.ToArray();
int[] numbersArray = numbers.ToArray();
Dim numbersArray() As Integer = numbers.ToArray()
En esta sección, demostraremos cómo exportar los datos de una lista a un archivo PDF utilizando la 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, incluya el espacio de nombres IronPdf
en su código:
using IronPdf;
using IronPdf;
Imports IronPdf
Ahora, creemos una función simple 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<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF specified object
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}
using System.Collections.Generic;
using IronPdf;
using System.Text;
void ExportListToPdf(List<string> data, string pdfFilePath)
{
// Create an HTML table from the list data
StringBuilder htmlBuilder = new StringBuilder();
htmlBuilder.Append("<table><tr><th>Item</th></tr>");
foreach (string item in data)
{
htmlBuilder.Append($"<tr><td>{item}</td></tr>");
}
htmlBuilder.Append("</table>");
// Convert the HTML table to a PDF using IronPDF specified object
var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
// Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath);
}
Imports System.Collections.Generic
Imports IronPdf
Imports System.Text
Private Sub ExportListToPdf(ByVal data As List(Of String), ByVal pdfFilePath As String)
' Create an HTML table from the list data
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("<table><tr><th>Item</th></tr>")
For Each item As String In data
htmlBuilder.Append($"<tr><td>{item}</td></tr>")
Next item
htmlBuilder.Append("</table>")
' Convert the HTML table to a PDF using IronPDF specified object
Dim renderer = New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
' Save the PDF to the specified file path
pdf.SaveAs(pdfFilePath)
End Sub
Para utilizar esta función en el ejemplo anterior, basta con llamarla con la lista y la ruta del archivo PDF deseado:
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
List<string> fruits = new List<string> { "apple", "banana", "cherry" };
ExportListToPdf(fruits, "Fruits.pdf");
Dim fruits As New List(Of String) From {"apple", "banana", "cherry"}
ExportListToPdf(fruits, "Fruits.pdf")
Esto generará un archivo PDF llamado "Fruits.pdf" que contiene una tabla con la lista de capacidad predeterminada de frutas convirtiendo HTML a PDF con IronPDF que coincide con las condiciones definidas. Puede modificar la función ExportListToPdf
para adaptarla a sus necesidades, como añadir estilos personalizados a la tabla HTML o contenido adicional al PDF.
En este tutorial para principiantes, cubrimos los aspectos básicos del uso de listas en C# y demostramos cómo integrar IronPDF para exportar datos de listas a un archivo PDF. Al incorporar IronPDF en sus proyectos, puede generar fácilmente informes, facturas u otros documentos imprimibles desde sus proyectos de C#.
IronPDF ofrece una prueba gratuita, lo que le permite probar sus capacidades antes de comprometerse a una compra. Si decides continuar usando IronPDF después del período de prueba, las licencias comienzan desde $749, con múltiples opciones de licencias disponibles para adaptarse a tus necesidades.