Triez les tableaux de données et générez des PDF avec IronPDF !
// Sample array of data
string [] names = { "Alice", "Charlie", "Bob", "David"};
// Sorting the array alphabetically
Array.Sort(names);
// Generating PDF content with sorted data
var sortedPdfContent = $@"
<html>
<body>
<h1>Sorted Names</h1>
<ul>
{string.Join("", names.Select(name => $"<li>{name}</li>"))}
</ul>
</body>
</html>
";
// Create a new PDF document with sorted data
var sortedPdfDocument = new IronPdf.ChromePdfRenderer();
sortedPdfDocument.RenderHtmlAsPdf(sortedPdfContent).SaveAs("SortedNames.pdf");
C# Tri de Tableaux (Comment cela fonctionne pour les développeurs)
Chaknith Bin
janvier 27, 2024
Partager:
Les tableaux jouent un rôle crucial dans la programmation C#, car ils constituent un moyen pratique de stocker et de manipuler des collections de données. Le tri est une opération fondamentale lorsque l'on travaille avec des tableaux. Dans cet article, nous allons explorer plusieurs façons de créer un tableau trié en C#. À la fin, vous aurez non seulement compris les bases du tri des tableaux, mais vous découvrirez également comment exploiter les puissantes capacités de tri offertes par C#.
Comprendre les bases des tableaux
Avant de nous plonger dans le tri, revenons sur les bases des tableaux en C#. Les tableaux sont des collections d'éléments du même type de données, stockés dans des emplacements de mémoire contigus. Ils permettent d'accéder efficacement aux éléments en utilisant la notation d'index.
La méthode la plus simple : Array.Sort()
C# simplifie le tri des tableaux avec la méthode spécifiée de tableau, Sort(). Cette méthode est polyvalente et peut être utilisée avec des éléments de tableaux de différents types de données. Voici un exemple rapide avec un tableau à une dimension :
Dim numbers() As Integer = { 5, 2, 8, 1, 7 }
Array.Sort(numbers)
$vbLabelText $csharpLabel
Le code ci-dessus triera les éléments du tableau par ordre croissant, les rendant { 1, 2, 5, 7, 8 }.
Tri personnalisé avec IComparer
Tandis que la méthode Array.Sort() est pratique pour les scénarios simples, vous pourriez rencontrer des situations où un ordre de tri personnalisé est nécessaire. C'est ici que l'interface IComparer entre en jeu. En implémentant cette interface, vous pouvez définir la logique de comparaison utilisée pour trier un tableau.
class CustomComparer : IComparer<int>
{
public int Compare(int x, int y)
{
// Your custom comparison logic here
return x.CompareTo(y); // Compares the first element with the next element
}
}
int [] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers, new CustomComparer());
class CustomComparer : IComparer<int>
{
public int Compare(int x, int y)
{
// Your custom comparison logic here
return x.CompareTo(y); // Compares the first element with the next element
}
}
int [] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers, new CustomComparer());
Friend Class CustomComparer
Implements IComparer(Of Integer)
Public Function Compare(ByVal x As Integer, ByVal y As Integer) As Integer Implements IComparer(Of Integer).Compare
' Your custom comparison logic here
Return x.CompareTo(y) ' Compares the first element with the next element
End Function
End Class
Private numbers() As Integer = { 5, 2, 8, 1, 7 }
Array.Sort(numbers, New CustomComparer())
$vbLabelText $csharpLabel
Tri d'objets : IComparable et IComparer<T>
Le tri des tableaux d'objets personnalisés nécessite l'implémentation de l'interface IComparable ou l'utilisation de IComparerpour trier les objets. Cela permet à l'algorithme de tri de comprendre les règles de comparaison de vos objets. Le code suivant démontre la logique de tri du tableau original d'objets Person en fonction de l'âge :
class Person : IComparable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public int CompareTo(Person other)
{
return this.Age.CompareTo(other.Age);
}
}
Person [] people = { /* populate with Person objects */ };
Array.Sort(people);
class Person : IComparable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public int CompareTo(Person other)
{
return this.Age.CompareTo(other.Age);
}
}
Person [] people = { /* populate with Person objects */ };
Array.Sort(people);
Friend Class Person
Implements IComparable(Of Person)
Public Property Name() As String
Public Property Age() As Integer
Public Function CompareTo(ByVal other As Person) As Integer Implements IComparable(Of Person).CompareTo
Return Me.Age.CompareTo(other.Age)
End Function
End Class
Private people() As Person = { }
Array.Sort(people)
$vbLabelText $csharpLabel
Array.Reverse() : Inverser l'ordre
Après avoir trié un tableau, il peut être nécessaire d'en inverser l'ordre. C# fournit la méthode Array.Reverse() précisément à cet effet.
Dim numbers() As Integer = { 1, 2, 3, 4, 5 }
Array.Reverse(numbers)
$vbLabelText $csharpLabel
Maintenant, le tableau numbers sera { 5, 4, 3, 2, 1 }.
Tirer parti de LINQ
Pour ceux qui préfèrent un style plus déclaratif pour trier les tableaux, LINQ (Language Integrated Query) peut également être utilisé pour trier les tableaux. La méthode OrderBy peut être utilisée pour trier par ordre croissant, et la méthode OrderByDescending peut être utilisée pour trier par ordre décroissant. Ces méthodes constituent un moyen concis d'effectuer un tri. L'exemple suivant utilise la syntaxe de requête LINQ :
int [] numbers = { 5, 2, 8, 1, 7 };
var sortedNumbers = numbers.OrderBy(x => x);
int [] numbers = { 5, 2, 8, 1, 7 };
var sortedNumbers = numbers.OrderBy(x => x);
Dim numbers() As Integer = { 5, 2, 8, 1, 7 }
Dim sortedNumbers = numbers.OrderBy(Function(x) x)
$vbLabelText $csharpLabel
Présentation d'IronPDF
En savoir plus sur IronPDF est une bibliothèque C# robuste qui simplifie la création, la modification et la manipulation de documents PDF directement à partir de HTML. Que vous génériez des rapports, des factures ou tout autre contenu dynamique, IronPDF offre une solution transparente qui vous permet d'exploiter la puissance de C# pour vos tâches liées aux PDF.
IronPDF convertit les pages Web et HTML en PDF, tout en conservant le formatage original. Il s'intègre parfaitement aux projets .NET, permettant aux développeurs d'automatiser la génération de PDF et d'améliorer les flux de travail.
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' 2. Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' 3. Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
$vbLabelText $csharpLabel
Installation d'IronPDF : Un démarrage rapide
Pour commencer à exploiter IronPDF dans votre projet C#, vous pouvez facilement installer le package NuGet IronPDF. Utilisez la commande suivante dans votre console de gestion des paquets :
Install-Package IronPdf
Vous pouvez également rechercher "IronPDF" dans le gestionnaire de paquets NuGet et l'installer à partir de là.
Générer des PDF avec IronPDF
La création d'un PDF avec IronPDF est simple. Considérons un exemple simple où nous créons un PDF à partir d'une chaîne HTML en utilisant IronPDF:
var htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Create a new PDF document
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(htmlContent).SaveAs("GeneratedDocument.pdf");
var htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>";
// Create a new PDF document
var pdfDocument = new IronPdf.ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(htmlContent).SaveAs("GeneratedDocument.pdf");
Dim htmlContent = "<html><body><h1>Hello, IronPDF!</h1></body></html>"
' Create a new PDF document
Dim pdfDocument = New IronPdf.ChromePdfRenderer()
pdfDocument.RenderHtmlAsPdf(htmlContent).SaveAs("GeneratedDocument.pdf")
$vbLabelText $csharpLabel
Dans cet exemple, nous avons utilisé IronPDF pour convertir un contenu HTML en un document PDF. Le PDF résultant, "GeneratedDocument.pdf", est enregistré à l'emplacement spécifié. Pour plus d'informations détaillées sur la façon de générer des PDFs, veuillez visiter la page IronPDF documentation.
Tri de tableaux avec IronPDF
La question se pose maintenant : Les techniques de tri de tableaux que nous avons explorées précédemment peuvent-elles être intégrées de manière transparente à IronPDF ? La réponse est oui.
Prenons le cas d'un tableau de données que vous souhaitez présenter sous forme de tableau dans votre PDF. Vous pouvez utiliser le tri par tableau pour organiser les données avant de générer le PDF, ce qui permet d'obtenir un résultat plus structuré et plus convivial.
// Sample array of data
string [] names = { "Alice", "Charlie", "Bob", "David"};
// Sorting the array alphabetically
Array.Sort(names);
// Generating PDF content with sorted data
var sortedPdfContent = $@"
<html>
<body>
<h1>Sorted Names</h1>
<ul>
{string.Join("", names.Select(name => $"<li>{name}</li>"))}
</ul>
</body>
</html>
";
// Create a new PDF document with sorted data
var sortedPdfDocument = new IronPdf.ChromePdfRenderer();
sortedPdfDocument.RenderHtmlAsPdf(sortedPdfContent).SaveAs("SortedNames.pdf");
// Sample array of data
string [] names = { "Alice", "Charlie", "Bob", "David"};
// Sorting the array alphabetically
Array.Sort(names);
// Generating PDF content with sorted data
var sortedPdfContent = $@"
<html>
<body>
<h1>Sorted Names</h1>
<ul>
{string.Join("", names.Select(name => $"<li>{name}</li>"))}
</ul>
</body>
</html>
";
// Create a new PDF document with sorted data
var sortedPdfDocument = new IronPdf.ChromePdfRenderer();
sortedPdfDocument.RenderHtmlAsPdf(sortedPdfContent).SaveAs("SortedNames.pdf");
' Sample array of data
Dim names() As String = { "Alice", "Charlie", "Bob", "David"}
' Sorting the array alphabetically
Array.Sort(names)
' Generating PDF content with sorted data
, String.Join(TangibleTstring.Format(mpVerbatimDoubleQuote, names.Select(Function(name) $TangibleTempVerbatimCloseTag"<li>{name}</li>")), TangibleStringInterpolationMarker)var sortedPdfContent = $"TangibleTempVerbatimOpenTagTangibleTempVerbatimStringLiteralLineJoin <html>TangibleTempVerbatimStringLiteralLineJoin <body>TangibleTempVerbatimStringLiteralLineJoin <h1>Sorted Names</h1>TangibleTempVerbatimStringLiteralLineJoin <ul>TangibleTempVerbatimStringLiteralLineJoin {0}ignoreignoreignoreignoreignore</ul></body></html>"
' Create a new PDF document with sorted data
Dim sortedPdfDocument = New IronPdf.ChromePdfRenderer()
sortedPdfDocument.RenderHtmlAsPdf(sortedPdfContent).SaveAs("SortedNames.pdf")
$vbLabelText $csharpLabel
Dans cet exemple, le tableau de noms est trié par ordre alphabétique avant d'être incorporé dans le contenu HTML. Le PDF résultant, "SortedNames.pdf", affichera les noms dans un ordre trié.
Conclusion
En conclusion, la maîtrise du tri de tableaux en C# est essentielle pour une manipulation efficace des données. Que vous ayez affaire à de simples tableaux numériques ou à des objets complexes, C# offre une variété d'outils pour répondre à vos besoins en matière de tri. En comprenant les bases de Array.Sort(), le tri personnalisé avec IComparer, et en utilisant LINQ pour une approche plus expressive, vous pouvez gérer de manière efficace et élégante les tableaux dans vos projets C#.
L'intégration d'IronPDF dans vos projets C# permet non seulement de disposer d'un puissant outil de génération de PDF, mais aussi d'intégrer de manière transparente le tri de tableaux dans votre flux de travail de création de documents. Que vous organisiez des données tabulaires ou que vous créiez des rapports dynamiques, la synergie entre le tri de tableaux et IronPDF vous permet d'améliorer vos capacités de génération de documents en C#. Alors, adoptez la puissance du tri dans les tableaux C# et élevez vos compétences en programmation !
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT C# Yield Return (Comment cela fonctionne pour les développeurs)
SUIVANT > Jquery Datatable (Comment cela fonctionne pour les développeurs)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucun engagement de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre démo en direct gratuite
Fiable par plus de 2 millions d'ingénieurs dans le monde entier