AYUDA .NET

C# Imprimir una lista (Cómo funciona para desarrolladores)

Actualizado 20 de mayo, 2024
Compartir:

En C#, imprimir una lista es una tarea común, y se puede realizar de varias maneras, ofreciendo flexibilidad y personalización. Las listas son estructuras de datos fundamentales en C#, y poder imprimir su contenido es crucial para depurar, registrar o mostrar información a los usuarios.

En este artículo exploraremos diferentes métodos para imprimir una lista en C#.

Fundamentos de la lista en C#

En C#, un lista es un array dinámico que puede crecer o decrecer en tamaño. Forma parte del espacio de nombres System.Collections.Generic y proporciona flexibilidad y eficiencia en el manejo de colecciones de elementos. El siguiente código crea una simple lista de números:

using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
    }
}
using System;
using System.Collections.Generic;
class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Impresión de una lista mediante un bucle

1. Uso del bucle foreach

La forma tradicional y directa de imprimir los elementos de una lista es utilizando un bucle foreach. He aquí un ejemplo sencillo:

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
        Console.WriteLine("Printing list using foreach loop:");
        foreach (var number in numbers)
        {
            Console.WriteLine(number);
        }
    }
}
using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
        Console.WriteLine("Printing list using foreach loop:");
        foreach (var number in numbers)
        {
            Console.WriteLine(number);
        }
    }
}
Imports System
Imports System.Collections.Generic
Friend Class Program
	Public Shared Sub Main()
		Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
		Console.WriteLine("Printing list using foreach loop:")
		For Each number In numbers
			Console.WriteLine(number)
		Next number
	End Sub
End Class
VB   C#

Este método es conciso y legible, lo que lo hace adecuado para la mayoría de los escenarios.

2. Uso del bucle for

Si necesita más control sobre el índice o desea imprimir elementos condicionalmente, puede utilizar un bucle for. He aquí un ejemplo de lista de cadenas:

using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
    //  crear una lista de objetos fuertemente tipados
        List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
        Console.WriteLine("Printing list using for loop:");
        for (int index = 0; index < colors.Count; index++)
        {
            Console.WriteLine($"Color at index {index}: {colors[index]}");
        }
    }
}
using System;
using System.Collections.Generic;
class Program
{
    public static void Main()
    {
    //  crear una lista de objetos fuertemente tipados
        List<string> colors = new List<string> { "Red", "Green", "Blue", "Yellow" };
        Console.WriteLine("Printing list using for loop:");
        for (int index = 0; index < colors.Count; index++)
        {
            Console.WriteLine($"Color at index {index}: {colors[index]}");
        }
    }
}
Imports System
Imports System.Collections.Generic
Friend Class Program
	Public Shared Sub Main()
	'  crear una lista de objetos fuertemente tipados
		Dim colors As New List(Of String) From {"Red", "Green", "Blue", "Yellow"}
		Console.WriteLine("Printing list using for loop:")
		For index As Integer = 0 To colors.Count - 1
			Console.WriteLine($"Color at index {index}: {colors(index)}")
		Next index
	End Sub
End Class
VB   C#

Este enfoque es beneficioso cuando se requiere acceso al índice o se desea aplicar una lógica específica durante la impresión.

Impresión inversa de elementos de lista

Se puede imprimir una lista en orden inverso utilizando el método Reverse. Este método invierte el orden de los elementos de la lista, lo que permite recorrerlos e imprimirlos.

1. Utilización del método List.Reverse

Por ejemplo, puede imprimir la lista en orden inverso utilizando el método Reverse y luego imprimiendo cada elemento.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
    Console.WriteLine(number);
}
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Reverse();
foreach (var number in numbers)
{
    Console.WriteLine(number);
}
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
numbers.Reverse()
For Each number In numbers
	Console.WriteLine(number)
Next number
VB   C#

2. Uso de LINQ OrderByDescending

También puede utilizar la función OrderByDescending (orden descendente) con una clave para ordenar una colección especificada de elementos de la clase genérica LINQ:

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
    Console.WriteLine(number);
}
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
var reversedNumbers = numbers.OrderByDescending(n => n);
foreach (var number in reversedNumbers)
{
    Console.WriteLine(number);
}
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim reversedNumbers = numbers.OrderByDescending(Function(n) n)
For Each number In reversedNumbers
	Console.WriteLine(number)
Next number
VB   C#

Contar el número de elementos e imprimir

Contar el número de elementos de una lista es una operación habitual. Para ello se puede utilizar la propiedad Count o el método Count. Una vez que tengas el recuento, puedes imprimirlo fácilmente.

1. Uso de la propiedad List.Count

List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count;
Console.WriteLine($"Number of elements: {count}");
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count
Console.WriteLine($"Number of elements: {count}")
VB   C#

2. Utilización del método LINQ Count

List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
int count = names.Count();
Console.WriteLine($"Number of elements: {count}");
Dim names As New List(Of String) From {"Alice", "Bob", "Charlie"}
Dim count As Integer = names.Count()
Console.WriteLine($"Number of elements: {count}")
VB   C#

Impresión de elementos de lista en el índice especificado

Imprimir elementos en un índice especificado implica acceder a la lista en ese índice. Esto le permite acceder a elementos en diferentes ubicaciones y asegurarse de que maneja posibles escenarios de índice fuera de rango:

List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
    Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
    Console.WriteLine("Index out of range.");
}
List<double> prices = new List<double> { 19.99, 29.99, 39.99 };
int indexToPrint = 1;
if (indexToPrint >= 0 && indexToPrint < prices.Count)
{
    Console.WriteLine($"Element at index {indexToPrint}: {prices[indexToPrint]}");
}
else
{
    Console.WriteLine("Index out of range.");
}
Dim prices As New List(Of Double) From {19.99, 29.99, 39.99}
Dim indexToPrint As Integer = 1
If indexToPrint >= 0 AndAlso indexToPrint < prices.Count Then
	Console.WriteLine($"Element at index {indexToPrint}: {prices(indexToPrint)}")
Else
	Console.WriteLine("Index out of range.")
End If
VB   C#

Estos ejemplos proporcionan una base para la impresión de elementos de lista en diversos escenarios. Existen otros métodos útiles que el lista que pueden utilizarse en la impresión.

Algunos métodos útiles son:

  • eliminar:` El botón Eliminar() elimina la primera aparición en la lista de C#
  • removeAll:` El botón RemoveAll() se utiliza para eliminar elementos basándose en el predicado especificado.
  • RemoveRange: El RemoveRange() elimina un rango de elementos en función de los parámetros de índice y recuento especificados.
  • añadir() sólo puede añadir un elemento al final de la lista.
  • AddRange: El AddRange() se puede utilizar para añadir elementos de la colección especificada al final.
  • Claro: El claro() elimina todos los elementos de la lista.
  • Insertar: La inserción() inserta un elemento en la lista en el índice especificado.
  • forEach:` El ForEach() se utiliza para realizar una acción específica en cada elemento, por ejemplo, imprimir cada valor de la lista de manera eficiente.
  • toArray:` La matriz ToArray() copia la lista en un nuevo array var.

    Ahora puede elegir el enfoque que mejor se adapte a sus necesidades y mejore la legibilidad y eficacia de su código C#.

Método String.Join

En String.Join proporciona una forma concisa de concatenar los elementos de una lista en una única cadena con un separador especificado. Esto puede ser útil para crear una representación de cadena formateada de la lista.

List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
string result = string.Join(", ", numbers);
Console.WriteLine(result);
Dim numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Dim result As String = String.Join(", ", numbers)
Console.WriteLine(result)
VB   C#

Aquí, los elementos de la lista números se unen en una cadena separada por una coma y un espacio, dando como resultado una salida formateada. El método de ordenación también puede utilizarse antes de imprimir los elementos de la lista.

Uso de LINQ en escenarios avanzados

Para situaciones más complejas, en las que desee filtrar, transformar o dar formato a elementos antes de imprimirlos, la consulta integrada en lenguaje (`LINQ) puede ser beneficioso.

using System.Linq;
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
using System.Linq;
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
List<int> evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers));
Imports System.Linq
Private numbers As New List(Of Integer) From {1, 2, 3, 4, 5}
Private evenNumbers As List(Of Integer) = numbers.Where(Function(n) n Mod 2 = 0).ToList()
Console.WriteLine("Even numbers: " & String.Join(", ", evenNumbers))
VB   C#

En este ejemplo, LINQ se utiliza para filtrar los números pares de la lista original. La función Where()se aplica con una expresión lambda, y el métodoToList()` se utiliza para volver a convertir el resultado en una lista.

C# Imprimir una Lista (Cómo Funciona Para Desarrolladores): Figura 1 - Salida de la consola: Números pares: 2, 4

Objetos personalizados y método ToString()

Si usted tiene una lista de objetos personalizados, se recomienda anular el método ToString en su clase de objeto para una representación significativa. El siguiente ejemplo muestra cómo hacerlo:

class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public override string ToString()
    {
        return $"{Name}, {Age} years old";
    }
}
class Program
{
    public static void Main()
    {
    List<Person> people = new List<Person>
    {
        new Person { Name = "Alice", Age = 30 },
        new Person { Name = "Bob", Age = 25 }
    };
    foreach (Person person in people)
    {
        Console.WriteLine(person);
    }
    }
}
class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    public override string ToString()
    {
        return $"{Name}, {Age} years old";
    }
}
class Program
{
    public static void Main()
    {
    List<Person> people = new List<Person>
    {
        new Person { Name = "Alice", Age = 30 },
        new Person { Name = "Bob", Age = 25 }
    };
    foreach (Person person in people)
    {
        Console.WriteLine(person);
    }
    }
}
Friend Class Person
	Public Property Name() As String
	Public Property Age() As Integer
	Public Overrides Function ToString() As String
		Return $"{Name}, {Age} years old"
	End Function
End Class
Friend Class Program
	Public Shared Sub Main()
	Dim people As New List(Of Person) From {
		New Person With {
			.Name = "Alice",
			.Age = 30
		},
		New Person With {
			.Name = "Bob",
			.Age = 25
		}
	}
	For Each person As Person In people
		Console.WriteLine(person)
	Next person
	End Sub
End Class
VB   C#

Anulando ToString()de la clasePersona`, controlas cómo se representan las instancias de la clase como cadenas. Esto mejora la legibilidad de la lista cuando se imprime.

C# Imprimir una Lista (Cómo Funciona Para Desarrolladores): Figura 2 - Salida de la consola

Presentación de IronPrint - C# Biblioteca de impresión

IronPrint destaca como una biblioteca de impresión potente y desplegable, que prioriza la precisión, la facilidad de uso y la rapidez. Su soporte multiplataforma y su compatibilidad con diversos formatos de documentos la convierten en una valiosa herramienta para los desarrolladores .NET que buscan soluciones de impresión eficaces en sus aplicaciones.

C# Imprimir una Lista (Cómo Funciona Para Desarrolladores): Figura 3 - IronPrint for .NET: La librería de impresión C#

Características principales

Estas son algunas de las características clave que hacen que IronPrint destaque en la impresión de documentos físicos en aplicaciones C#:

1. Compatibilidad entre plataformas

  • Compatibilidad con las versiones de .NET: .NET 8, 7, 6, 5 y Core 3.1+.
  • Sistemas operativos: Windows (7+, Server 2016+)macOS (10+)iOS (11+)Android API 21+ (v5 "Lollipop")
  • Tipos de proyectos: Móvil (Xamarin & MAUI & Avalonia)Escritorio (WPF & MAUI & Windows Avalonia)Consola (Aplicación y biblioteca)

2. Formatos admitidos

  • Maneja varios formatos de documentos, como PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE y BITMAP.
  • Personalice la configuración de impresión según los requisitos del documento.

3. 3. Fácil instalación

Instale el IronPrint mediante la consola del gestor de paquetes NuGet:

Install-Package IronPrint
Install-Package IronPrint
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPrint
VB   C#

También puede instalarlo en su proyecto mediante Visual Studio. Haga clic con el botón derecho en el proyecto en el Explorador de soluciones y haga clic en Administrar NuGet Package Manager para soluciones. En la pestaña de búsqueda de NuGet, busque "ironprint ", seleccione la última versión del paquete IronPrint de los resultados de la búsqueda y, a continuación, haga clic en el botón Instalar para añadirlo a su proyecto.

Impresión con IronPrint: Ejemplos de código

1. Imprimir documento

IronPrint ofrece una impresión silenciosa de los documentos utilizando el sencillo Método `Print. Si la impresora física no está disponible, imprime utilizando la impresora por defecto especificada por el sistema operativo.

using IronPrint;
//  Imprimir el documento
Printer.Print("newDoc.pdf");
using IronPrint;
//  Imprimir el documento
Printer.Print("newDoc.pdf");
Imports IronPrint
'  Imprimir el documento
Printer.Print("newDoc.pdf")
VB   C#

También proporciona un método específico para mostrar el diálogo `print para un mejor control durante la impresión. El método ShowPrintDialogAsync también se puede utilizar para imprimir de forma asíncrona.

using IronPrint;
//  Mostrar diálogo de impresión
Printer.ShowPrintDialog("newDoc.pdf");
using IronPrint;
//  Mostrar diálogo de impresión
Printer.ShowPrintDialog("newDoc.pdf");
Imports IronPrint
'  Mostrar diálogo de impresión
Printer.ShowPrintDialog("newDoc.pdf")
VB   C#

3. Personalizar la configuración de impresión

IronPrint ofrece varios configuración de `print que permiten un control granular sobre el documento impreso.

using IronPrint;
//  Configurar los ajustes de impresión
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
//  Imprimir el documento
Printer.Print("newDoc.pdf", printSettings);
using IronPrint;
//  Configurar los ajustes de impresión
PrintSettings printSettings = new PrintSettings();
printSettings.Dpi = 150;
printSettings.NumberOfCopies = 2;
printSettings.PaperOrientation = PaperOrientation.Portrait;
//  Imprimir el documento
Printer.Print("newDoc.pdf", printSettings);
Imports IronPrint
'  Configurar los ajustes de impresión
Private printSettings As New PrintSettings()
printSettings.Dpi = 150
printSettings.NumberOfCopies = 2
printSettings.PaperOrientation = PaperOrientation.Portrait
'  Imprimir el documento
Printer.Print("newDoc.pdf", printSettings)
VB   C#

Para conocer mejor las clases y métodos utilizados, visite la página **Referencia API página.

Conclusión

Imprimir una lista en C# implica elegir el método adecuado en función de la complejidad de los datos y la salida deseada. Ya sea utilizando un simple bucle, String.Join(), LINQ, o personalizando el ToString() para objetos personalizados, la comprensión de estos enfoques le equipa para mostrar eficazmente el contenido de las listas en sus aplicaciones C#. Experimente con estas técnicas y elija la que mejor se adapte a su caso de uso específico.

IronPrint es su biblioteca de impresión de referencia si desea precisión, facilidad de uso y rapidez. Si está creando aplicaciones web, trabajando con MAUI, Avalonia, o cualquier cosa relacionada con .NET, IronPrint le cubre las espaldas. Para obtener información más detallada sobre IronPrint, visite este enlace documentación página.

IronPrint es una biblioteca de pago, pero un prueba gratuita. Descargue la biblioteca de aquí e inténtelo!

< ANTERIOR
Función de impresión en C# (Cómo funciona para desarrolladores)
SIGUIENTE >
C# Print to Console (Cómo funciona para desarrolladores)

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

Descarga gratuita de NuGet Descargas totales: 5,359 Ver licencias >
123