Passer au contenu du pied de page
.NET AIDE

C# Imprimer une liste : un tutoriel rapide

En C#, l'impression d'une liste est une tâche courante, et elle peut être accomplie de différentes manières, offrant flexibilité et personnalisation. Les listes sont des structures de données fondamentales en C#, et pouvoir imprimer leur contenu est crucial pour le débogage, la journalisation ou l'affichage d'informations aux utilisateurs.

Dans cet article, nous allons explorer différentes méthodes pour imprimer une liste en C#.

Bases de la liste en C#

En C#, une liste est un tableau dynamique dont la taille peut augmenter ou diminuer. Elle fait partie de l'espace de noms System.Collections.Generic et offre souplesse et efficacité dans la gestion des collections d'éléments. Le code suivant crée une simple liste de nombres :

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
$vbLabelText   $csharpLabel

Imprimer une liste à l'aide d'une boucle

1. Utilisation de la boucle foreach

La manière traditionnelle et directe d'imprimer les éléments d'une liste consiste à utiliser une boucle foreach. Voici un exemple simple :

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
$vbLabelText   $csharpLabel

Cette méthode est concise et lisible, ce qui la rend adaptée à la plupart des scénarios.

2 Utilisation de la boucle `for`

Si vous avez besoin de plus de contrôle sur l'index ou si vous souhaitez imprimer des éléments de manière conditionnelle, vous pouvez utiliser une boucle `for`. Voici un exemple de liste de chaînes de caractères : ```csharp using System; using System.Collections.Generic; class Program { public static void Main() { // Create list of strongly typed objects List colors = new List { "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]}"); } } } ``` Cette approche est avantageuse lorsque vous devez accéder à l'index ou que vous souhaitez appliquer une logique spécifique lors de l'impression. ## Imprimer les éléments d'une liste à l'envers L'impression d'une liste dans l'ordre inverse peut être réalisée en utilisant la méthode `Reverse`. Cette méthode inverse l'ordre des éléments de la liste, ce qui vous permet de les parcourir et de les imprimer. ### 1. Utilisation de la méthode List.Reverse Par exemple, vous pouvez imprimer la liste dans l'ordre inverse en utilisant la méthode `Reverse` et en imprimant ensuite chaque élément. ```csharp using System; using System.Collections.Generic; class Program { public static void Main() { List numbers = new List { 1, 2, 3, 4, 5 }; numbers.Reverse(); foreach (var number in numbers) { Console.WriteLine(number); } } } ``` ### 2 Utilisation de LINQ OrderByDescending Vous pouvez également utiliser la méthode [`OrderByDescending`](https://learn.microsoft.com/en-us/dotnet/api/system.linq.enumerable.orderbydescending?view=net-8.0) avec une clé pour organiser une collection spécifiée d'éléments de la classe générique LINQ : ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { public static void Main() { List numbers = new List { 1, 2, 3, 4, 5 }; var reversedNumbers = numbers.OrderByDescending(n => n); foreach (var number in reversedNumbers) { Console.WriteLine(number); } } } ``` ## Compter le nombre d'éléments et imprimer Compter le nombre d'éléments d'une liste est une opération courante. La propriété `Count` peut être utilisée à cette fin. Une fois que vous avez le compte, vous pouvez facilement l'imprimer. ### 1. Utilisation de la propriété List.Count ```csharp using System; using System.Collections.Generic; class Program { public static void Main() { List names = new List { "Alice", "Bob", "Charlie" }; int count = names.Count; Console.WriteLine($"Number of elements: {count}"); } } ``` ### 2 Utilisation de la méthode de comptage LINQ Si LINQ est préféré, il peut également être utilisé pour le comptage : ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { public static void Main() { List names = new List { "Alice", "Bob", "Charlie" }; int count = names.Count(); Console.WriteLine($"Number of elements: {count}"); } } ``` ## Imprimer les éléments d'une liste à l'index spécifié L'impression d'éléments à un index donné implique l'accès à la liste à cet index. Cela vous permet d'accéder à des éléments situés à différents endroits et de vous assurer que vous gérez les scénarios de dépassement d'index potentiels : ```csharp using System; using System.Collections.Generic; class Program { public static void Main() { List prices = new List { 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."); } } } ``` Ces exemples fournissent une base pour l'impression d'éléments de liste dans divers scénarios. La classe [`list`](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1?view=net-8.0) offre d'autres méthodes utiles qui peuvent être utilisées pour l'impression. Voici quelques méthodes utiles : * `Remove:` La méthode `Remove()` supprime la première occurrence dans la liste du C#. * `RemoveAll:` La méthode `RemoveAll()` est utilisée pour supprimer des éléments en fonction du prédicat spécifié. * `RemoveRange:` La méthode `RemoveRange()` supprime une plage d'éléments en fonction des paramètres d'index et de nombre spécifiés. * numbers = new List { 1, 2, 3, 4, 5 }; string result = string.Join(", ", numbers); Console.WriteLine(result); } } ``` Ici, les éléments de la liste `numbers` sont réunis dans une chaîne de caractères séparée par une virgule et un espace, ce qui donne une sortie formatée. La méthode de tri peut également être utilisée avant d'imprimer les éléments de la liste. ## Utilisation de LINQ pour des scénarios avancés Pour des scénarios plus complexes, dans lesquels vous souhaitez filtrer, transformer ou formater des éléments avant de les imprimer, la requête intégrée au langage ([`LINQ`](https://learn.microsoft.com/en-us/dotnet/csharp/linq/)) peut s'avérer utile. ```csharp using System; using System.Collections.Generic; using System.Linq; class Program { public static void Main() { List numbers = new List { 1, 2, 3, 4, 5 }; List evenNumbers = numbers.Where(n => n % 2 == 0).ToList(); Console.WriteLine("Even numbers: " + string.Join(", ", evenNumbers)); } } ``` Dans cet exemple, LINQ est utilisé pour filtrer les nombres pairs de la liste originale. La méthode `Where()` est appliquée avec une expression lambda, et la méthode `ToList()` est utilisée pour reconvertir le résultat en liste. ![C# Print a List (How It Works For Developers) : Figure 1 - Sortie de la console : Chiffres pairs : 2, 4](/static-assets/print/blog/csharp-print-list/csharp-print-list-1.webp) ## Objets personnalisés et méthode ToString() Si vous disposez d'une liste d'objets personnalisés, il est recommandé de remplacer la méthode `ToString` dans votre classe d'objets pour une représentation significative. L'exemple suivant montre comment procéder : ```csharp using System; using System.Collections.Generic; 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 people = new List { new Person { Name = "Alice", Age = 30 }, new Person { Name = "Bob", Age = 25 } }; foreach (Person person in people) { Console.WriteLine(person); } } } ``` En remplaçant la méthode `ToString()` de la classe `Person`, vous contrôlez la manière dont les instances de la classe sont représentées sous forme de chaînes de caractères. La lisibilité de votre liste s'en trouvera améliorée à l'impression. ![C# Imprimer une liste (Comment ça marche pour les développeurs) : Figure 2 - Sortie de la console](/static-assets/print/blog/csharp-print-list/csharp-print-list-2.webp) ## Introduction à IronPrint - C# ; bibliothèque d'impression [IronPrint](/csharp/print/) se démarque en tant que bibliothèque d'impression puissante et déployable, privilégiant la précision, la facilité d'utilisation et la rapidité. Sa prise en charge multiplateforme et sa compatibilité avec divers formats de documents en font un outil précieux pour les développeurs .NET à la recherche de solutions d'impression efficaces dans leurs applications. ![C# Print a List (How It Works For Developers) : Figure 3 - IronPrint for .NET : La bibliothèque d'impression C#](/static-assets/print/blog/csharp-print-list/csharp-print-list-3.webp) ### Caractéristiques principales Voici quelques caractéristiques clés importantes qui permettent à IronPrint de se démarquer pour l'impression de documents physiques dans les applications C# : #### 1. Compatibilité multiplateforme * prise en charge des versions .NET : .NET 8, 7, 6, 5 et Core 3.1+ * Systèmes d'exploitation : Windows (7+, Server 2016+), macOS (10+), iOS (11+), Android API 21+ (v5 "Lollipop") * Types de projets : Mobile (Xamarin & MAUI & Avalonia), Desktop (WPF & MAUI & Windows Avalonia), Console (App & Library) #### 2 Formats pris en charge * Traiter divers formats de documents, notamment PDF, PNG, HTML, TIFF, GIF, JPEG, IMAGE et BITMAP. * Personnaliser les paramètres d'impression en fonction des exigences du document. #### 3 Installation facile Installez la bibliothèque [IronPrint](https://www.nuget.org/packages/IronPrint) à l'aide de la console NuGet Package Manager : ```shell :ProductInstall ``` Vous pouvez également l'installer dans votre projet à l'aide de Visual Studio. Cliquez avec le bouton droit de la souris sur le projet dans l'explorateur de solutions et cliquez sur Gérer le gestionnaire de packages NuGet pour les solutions. Dans l'onglet Parcourir de NuGet, recherchez **"ironprint",** sélectionnez la dernière version du package IronPrint dans les résultats de la recherche, puis cliquez sur le bouton Installer pour l'ajouter à votre projet. ### Imprimer avec IronPrint : Exemples de code #### 1. Imprimer le document IronPrint propose une impression silencieuse des documents à l'aide de la simple méthode [`Print`](/csharp/print/examples/print/). Si aucune imprimante physique n'est disponible, l'impression se fait à l'aide de l'imprimante par défaut spécifiée par le système d'exploitation. ```csharp using IronPrint; class Program { static void Main() { // Print the document Printer.Print("newDoc.pdf"); } } ``` #### 2. imprimer avec le dialogue Elle fournit également une méthode dédiée pour afficher le dialogue [`print`](/csharp/print/examples/print-with-dialog/) pour un meilleur contrôle lors de l'impression. La méthode `ShowPrintDialogAsync` peut également être utilisée pour imprimer de manière asynchrone. ```csharp using IronPrint; class Program { static void Main() { // Show print dialog Printer.ShowPrintDialog("newDoc.pdf"); } } ``` #### 3. personnaliser les paramètres d'impression IronPrint fournit divers [`print` settings](/csharp/print/examples/print-settings/) qui permettent un contrôle granulaire de l'impression du document. ```csharp using IronPrint; class Program { static void Main() { // Configure print settings PrintSettings printSettings = new PrintSettings() { Dpi = 150, NumberOfCopies = 2, PaperOrientation = PaperOrientation.Portrait }; // Print the document Printer.Print("newDoc.pdf", printSettings); } } ``` Pour mieux comprendre les classes et les méthodes utilisées, veuillez consulter la page [**Référence API**](/csharp/print/object-reference/api/). ## Conclusion Imprimer une liste en C# implique de choisir la bonne méthode en fonction de la complexité des données et de la sortie souhaitée. Que ce soit en utilisant une simple boucle, `String.Join()`, LINQ, ou en personnalisant la méthode `ToString()` pour des objets personnalisés, la compréhension de ces approches vous équipe pour afficher efficacement le contenu des listes dans vos applications C#. Expérimentez ces techniques et choisissez celle qui correspond le mieux à votre cas d'utilisation spécifique. [IronPrint](/csharp/print/) est votre bibliothèque d'impression de référence si vous recherchez la précision, la facilité d'utilisation et la rapidité. Que vous construisiez des WebApps, que vous travailliez avec MAUI, Avalonia ou tout autre outil lié à .NET, IronPrint for .NET est là pour vous aider. Pour des informations plus détaillées sur IronPrint, veuillez consulter cette [page de documentation](/csharp/print/docs/). IronPrint est une bibliothèque payante, mais un [essai gratuit](trial-license) est disponible. Téléchargez la bibliothèque à partir de [here](/csharp/print/) et essayez-la !

Questions Fréquemment Posées

Comment puis-je imprimer une liste en C# ?

Vous pouvez utiliser IronPrint pour imprimer une liste en C# en parcourant les éléments de la liste avec une boucle foreach ou for et en passant la sortie formatée à IronPrint pour l'impression.

Quels sont les avantages d'utiliser un tableau dynamique en C# ?

Les tableaux dynamiques, ou listes, en C# offrent de la flexibilité car ils peuvent augmenter ou diminuer en taille. Ils font partie de l'espace de noms System.Collections.Generic, permettant une gestion et une manipulation efficaces des collections.

Comment puis-je inverser une liste en C# pour l'impression ?

Pour imprimer une liste dans l'ordre inverse, vous pouvez utiliser la méthode Reverse ou OrderByDescending de LINQ, puis imprimer la liste inversée avec IronPrint.

Comment puis-je formater une liste en tant que chaîne pour l'impression ?

Vous pouvez utiliser la méthode String.Join pour concaténer les éléments de la liste en une chaîne unique formatée avec un séparateur spécifié. Cette chaîne formatée peut ensuite être imprimée à l'aide d'IronPrint.

Quel est le rôle de la méthode ToString dans l'impression d'objets personnalisés ?

En redéfinissant la méthode ToString, vous pouvez définir comment les instances d'objets personnalisés sont représentées sous forme de chaînes, ce qui améliore la lisibilité lors de l'impression avec IronPrint.

Comment puis-je filtrer et imprimer des éléments spécifiques d'une liste en C# ?

Les méthodes LINQ comme Where peuvent être utilisées pour filtrer et sélectionner des éléments spécifiques d'une liste. Les résultats filtrés peuvent ensuite être imprimés à l'aide d'IronPrint.

Comment installer une bibliothèque d'impression pour .NET ?

Vous pouvez installer IronPrint à l'aide de la console du gestionnaire de packages NuGet avec la commande Install-Package IronPrint ou via le Gestionnaire de Packages NuGet de Visual Studio.

Quelles fonctionnalités IronPrint offre-t-il aux développeurs .NET ?

IronPrint offre une compatibilité multiplateforme, une prise en charge de divers formats de document, une impression silencieuse, des boîtes de dialogue d'impression et des paramètres d'impression personnalisables, ce qui en fait un choix puissant pour les développeurs .NET.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite