AIDE .NET

C# Tri de Tableaux (Comment cela fonctionne pour les développeurs)

Publié 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 du cours, vous comprendrez non seulement les principes de base de l'éducation et de la formation, mais aussi les principes de base de l'éducation et de la formationtri de tableauxmais aussi de découvrir 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 pour les tableaux, 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 :

int [] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers);
int [] numbers = { 5, 2, 8, 1, 7 };
Array.Sort(numbers);
Dim numbers() As Integer = { 5, 2, 8, 1, 7 }
Array.Sort(numbers)
VB   C#

Le code ci-dessus trie les éléments du tableau dans l'ordre croissant, ce qui le rend{ 1, 2, 5, 7, 8}.

Tri personnalisé avec IComparer

Alors que la méthode Array.Sort()la méthode est pratique pour les scénarios simples, mais vous pouvez rencontrer des situations où un ordre de tri personnalisé est nécessaire. C'est là 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())
VB   C#

Tri d'objets : IComparable et IComparer

Le tri de tableaux d'objets personnalisés nécessite l'implémentation de l'interface IComparable ou l'utilisation de IComparerpour le tri des 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 Personne 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)
VB   C#

Array.Reverse() : Inverser l'ordre

Après avoir trié un tableau, il peut être nécessaire d'en inverser l'ordre. C# fournit la fonction Array.Reverse(), précisément dans ce but.

int [] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers);
int [] numbers = { 1, 2, 3, 4, 5 };
Array.Reverse(numbers);
Dim numbers() As Integer = { 1, 2, 3, 4, 5 }
Array.Reverse(numbers)
VB   C#

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(Langue Requête intégrée) peut également être utilisé pour trier des tableaux. La méthode OrderBy permet de trier par ordre croissant et la méthode OrderByDescending permet de 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)
VB   C#

Présentation d'IronPDF

Tri de tableaux en C#(Comment cela fonctionne-t-il pour les développeurs ?) : Figure 1 - Page web 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.

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à.

Tri de tableaux en C#(Comment cela fonctionne-t-il pour les développeurs ?) (tri de tableaux en C#) : Figure 2 - Navigation dans le gestionnaire de paquets NuGet pour le paquetage IronPDF

Générer des PDF avec IronPDF

La création d'un PDF avec IronPDF est simple. Prenons un exemple simple où nous créons un PDF à partir deChaîne HTML 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")
VB   C#

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 obtenir des informations plus détaillées sur la manière de générer des PDF, veuillez consulter la page d'accueil du site Web de la Commission européenneDocumentation IronPDF page.

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")
VB   C#

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é.

Tri de tableaux en C#(Comment cela fonctionne-t-il pour les développeurs ?) : Figure 3 - Sortie PDF du code précédent

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 l'utilisation de LINQ pour une approche plus expressive, vous pouvez manipuler efficacement et élégamment 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#. Profitez donc de la puissance du tri dans les tableaux C# et améliorez vos prouesses en matière de programmation!

IronPDF offre un service delicence d'essai gratuite pour tester l'ensemble de ses fonctionnalités en vue d'une utilisation commerciale. Sa perpétuellelicences commerciales démarrer à partir de $749.

< PRÉCÉDENT
C# Yield Return (Comment cela fonctionne pour les développeurs)
SUIVANT >
Jquery Datatable (Comment cela fonctionne pour les développeurs)