IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

C# Orderby (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

Le tri est une opération fondamentale dans n'importe quel langage de programmation, et la méthode OrderBy en C# est un outil puissant pour organiser les éléments au sein des collections. Que vous travailliez avec des tableaux, des listes ou d'autres structures énumérables, comprendre comment exploiter OrderBy peut grandement améliorer la lisibilité et la fonctionnalité de votre code.

Plus loin dans cet article, nous présenterons la bibliothèque IronPDF d'Iron Software et comment nous pouvons utiliser la méthode LINQ OrderBy et IronPDF pour générer des PDF formatés et triés.

Qu'est-ce que la méthode LINQ OrderBy ?

La méthode OrderBy fait partie de la bibliothèque LINQ (Language-Integrated Query) en C# et est spécialement conçue pour trier les éléments par ordre croissant; comme c'est le moyen par défaut de trier les données, il n'est pas nécessaire d'utiliser un mot-clé pour l'ordre croissant.

Comment utiliser la méthode LINQ OrderBy

Trier les données par ordre croissant

En C#, il existe deux façons d'appliquer cette méthode : par la syntaxe de méthode ou la syntaxe de requête. Nous utiliserons la syntaxe de méthode car elle est simple :

var sortedCollection = collection.OrderBy(item => item.OrderByProperty);

Ici, collection est la collection source IEnumerable que vous voulez trier, et OrderByProperty est la propriété ou l'expression selon laquelle vous voulez ordonner les éléments. L'expression lambda dans OrderBy spécifie le critère de tri.

Trier les données par ordre décroissant

Pour trier par ordre décroissant, vous pouvez utiliser la méthode OrderByDescending en utilisant la syntaxe basée sur les méthodes :

var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty);

Trier les données par plusieurs critères

Dans les scénarios réels, vous devez souvent trier une collection basée sur plusieurs critères. OrderBy permet cela en enchaînant plusieurs appels ThenBy ou ThenByDescending :

var multiSortedCollection = collection
    .OrderBy(item => item.OrderByProperty1)
    .ThenByDescending(item => item.OrderByProperty2);

Dans cet exemple, la collection est d'abord triée par OrderByProperty1 en ordre croissant. Ensuite, pour les éléments ayant la même valeur OrderByProperty1, elle est triée par OrderByProperty2 en ordre décroissant.

Comparateurs personnalisés

Pour des exigences de tri plus complexes, vous pouvez utiliser des comparateurs personnalisés. La méthode OrderBy vous permet de passer une implémentation IComparer<t>, comme montré dans l'exemple suivant :

var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer());

Ici, CustomComparer est une classe implémentant l'interface IComparer<t>, fournissant une logique personnalisée pour comparer les éléments.

Exemple pratique : Trier des objets

Trier une liste d'entiers

using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<int> numbers = new List<int> { 5, 2, 8, 1, 7 };
        var sortedNumbers = numbers.OrderBy(num => num);
        Console.WriteLine("Sorted Numbers:");
        foreach (var number in sortedNumbers)
        {
            Console.WriteLine(number);
        }
    }
}

Dans cet exemple, une liste d'entiers est triée par ordre croissant en utilisant OrderBy.

Trier une liste de chaînes de caractères

using System;
using System.Linq;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        List<string> names = new List<string> { "Alice", "Charlie", "Bob", "David" };
        var sortedNames = names.OrderBy(name => name);
        Console.WriteLine("Sorted Names:");
        foreach (var name in sortedNames)
        {
            Console.WriteLine(name);
        }
    }
}

Cet exemple illustre le tri d'une liste de chaînes de caractères par ordre croissant alphabétiquement.

Trier une liste d'objets personnalisés

using System;
using System.Linq;
using System.Collections.Generic;

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { FirstName = "John", LastName = "Doe", Age = 30 },
            new Person { FirstName = "Alice", LastName = "Smith", Age = 25 },
            new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 }
        };
        var sortedPeople = people.OrderBy(person => person.Age);
        Console.WriteLine("Sorted People by Age:");
        foreach (var person in sortedPeople)
        {
            Console.WriteLine($"{person.FirstName} {person.LastName}, Age: {person.Age}");
        }
    }
}

Dans cet exemple, une liste d'objets personnalisés Person est triée basée sur la propriété Age par ordre croissant.

La sortie suivante est visible dans la console :

C# Orderby (Comment ça fonctionne pour les développeurs) : Figure 1 - Résultat du tri précédent des objets personnalisés

Gestion des comparaisons de chaînes de caractères

Lorsque vous traitez avec des propriétés de chaîne de caractères, vous souhaiterez peut-être assurer un tri insensible à la casse :

var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase);

Cet exemple utilise StringComparer.OrdinalIgnoreCase pour effectuer un tri insensible à la casse basé sur la propriété LastName.

Considérations de Performance

Bien que LINQ offre un moyen concis de trier les collections, il est essentiel de prendre en compte les implications sur les performances, surtout pour les grands ensembles de données. Pour des scénarios critiques en termes de performances, vous pourriez explorer des alternatives comme le tri en place en utilisant la méthode List<t>.Sort.

Présentation d'IronPDF

Découvrez les capacités d'IronPDF au sein de la bibliothèque PDF C# d'Iron Software, qui aide à lire et à générer des documents PDF. Il peut convertir facilement des documents formatés avec des informations de style en PDF. IronPDF peut générer des PDF à partir de chaînes HTML, ou il peut télécharger le HTML de l'URL puis générer des PDF.

IronPDF brille lorsqu'il s'agit de convertir du HTML en PDF, préservant toutes les mises en page et styles. Il peut générer des PDF à partir de divers contenus web, tels que des rapports, des factures et de la documentation. L'outil fonctionne avec des fichiers HTML, des URL, et des chaînes HTML pour créer des fichiers 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");
    }
}

Installation

IronPDF peut être installé en utilisant la console de gestionnaire de packages NuGet ou en utilisant le gestionnaire de packages Visual Studio.

PM > Install-Package IronPdf

Vous pouvez également installer IronPDF en utilisant le gestionnaire de packages NuGet en recherchant " IronPDF " dans la barre de recherche.

C# Orderby (Comment ça fonctionne pour les développeurs) : Figure 2 - Installation de IronPDF via le gestionnaire de packages NuGet

Générer un PDF avec IronPDF

Voici le code pour générer un rapport PDF en utilisant une chaîne HTML et le générateur IronPDF :

// See https://aka.ms/new-console-template for more information

using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int Age { get; set; }
}

class Program
{
    static void Main()
    {
        List<Person> people = new List<Person>
        {
            new Person { FirstName = "John", LastName = "Doe", Age = 30 },
            new Person { FirstName = "Alice", LastName = "Smith", Age = 25 },
            new Person { FirstName = "Bob", LastName = "Johnson", Age = 35 }
        };
        
        // Sort people by age
        var sortedPeople = people.OrderBy(person => person.Age);
        
        string name = "Sam";
        var count = people.Count;
        
        // Generate an HTML string
        string content = $@"<!DOCTYPE html>
<html>
<body>
<h1>Hello, {name}!</h1>
<p>You have {count} people sorted by Age.</p>
" + string.Join("\n", sortedPeople.Select(person => $"{person.FirstName} {person.LastName}, Age: {person.Age}"))
+ @"
</body>
</html>";

        // Create a new PDF document and save it
        var pdfDocument = new ChromePdfRenderer();
        pdfDocument.RenderHtmlAsPdf(content).SaveAs("personByAge.pdf");
    }
}

Ici, nous générons d'abord une chaîne HTML à partir de sortedPeople qui est triée par ordre croissant avec tout le formatage requis pour les rapports. Ensuite, nous utilisons IronPDF pour générer un document PDF. Nous utilisons la méthode RenderHtmlAsPdf pour convertir la chaîne HTML en document PDF.

Sortie

La sortie suivante est disponible dans le PDF :

C# Orderby (Comment ça fonctionne pour les développeurs) : Figure 3 - PDF de sortie du code précédent

Licence (Essai Gratuit Disponible)

Une clé d'essai peut être obtenue à partir de IronPDF Trial License. Cette clé doit être placée dans appsettings.json.

"IronPdf.LicenseKey": "your license key"
JSON

Fournissez votre email pour obtenir une licence d'essai.

Conclusion

La méthode OrderBy en C# est un outil polyvalent pour trier les collections basées sur divers critères. Que vous triiez par ordre ascendant ou descendant, par un ou plusieurs critères, ou en utilisant des comparateurs personnalisés, maîtriser OrderBy peut améliorer considérablement la clarté et l'efficacité de votre code.

Avec la bibliothèque IronPDF pour générer des documents PDF, c'est une excellente combinaison pour générer une collection joliment formatée et triée sous forme de document.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $