IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

C# Orderby (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

A ordenação é uma operação fundamental em qualquer linguagem de programação, e o método OrderBy do C# é uma ferramenta poderosa para organizar elementos em coleções. Seja trabalhando com arrays, listas ou outras estruturas enumeráveis, entender como usar o OrderBy pode melhorar muito a legibilidade e a funcionalidade do seu código.

Mais adiante neste artigo, apresentaremos a biblioteca IronPDF da Iron Software e como podemos usar o método OrderBy do LINQ com o IronPDF para gerar PDFs formatados e classificados.

O que é o método OrderBy do LINQ?

O método OrderBy é parte da biblioteca LINQ (Language-Integrated Query) em C# e é especificamente projetado para ordenar elementos em ordem crescente; Como essa é a forma padrão de classificar dados, não há necessidade de uma palavra-chave ascendente.

Como usar o método OrderBy do LINQ

Ordenando dados em ordem crescente

Em C#, existem duas maneiras de aplicar esse método: por meio da sintaxe de método ou da sintaxe de consulta. Usaremos a sintaxe do método, pois é simples:

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

Aqui, o collection é a coleção fonte IEnumerable que você deseja ordenar, e OrderByProperty é a propriedade ou expressão pela qual você deseja ordenar os elementos. A expressão lambda dentro do OrderBy especifica o critério de ordenação.

Ordenando os dados em ordem decrescente.

Para ordenar em ordem decrescente, você pode usar o método OrderByDescending usando a sintaxe baseada em método:

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

Classificação de dados por múltiplos critérios

Em cenários do mundo real, muitas vezes é necessário classificar uma coleção com base em vários critérios. OrderBy permite isso encadeando múltiplos ThenBy ou chamadas de ThenByDescending:

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

Neste exemplo, a coleção é primeiro ordenada por OrderByProperty1 em ordem crescente. Depois, para elementos com o mesmo valor de OrderByProperty1, é ordenada por OrderByProperty2 em ordem decrescente.

Comparadores personalizados

Para requisitos de classificação mais complexos, você pode usar comparadores personalizados. O método OrderBy permite que você passe uma implementação de IComparer<t>, como mostrado no exemplo a seguir:

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

Aqui, CustomComparer é uma classe que implementa a interface IComparer<t>, fornecendo lógica personalizada para comparar elementos.

Exemplo prático: Classificando objetos

Ordenando uma lista de números inteiros

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);
        }
    }
}

Neste exemplo, uma lista de inteiros é ordenada em ordem crescente usando OrderBy.

Ordenando uma lista de strings

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);
        }
    }
}

Este exemplo demonstra como ordenar uma lista de strings em ordem alfabética crescente.

Ordenando uma lista de objetos personalizados

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}");
        }
    }
}

Neste exemplo, uma lista de objetos Person personalizados é ordenada com base na propriedade Age em ordem crescente.

A seguinte saída é visível no console:

C# Orderby (Como Funciona para Desenvolvedores): Figura 1 - Saída do código anterior ordenando objetos personalizados

Manipulação de comparações de strings

Ao lidar com propriedades de string, convém garantir a ordenação sem distinção entre maiúsculas e minúsculas:

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

Este exemplo usa o StringComparer.OrdinalIgnoreCase para realizar uma ordenação sem distinção entre maiúsculas e minúsculas com base na propriedade LastName.

Considerações sobre o desempenho

Embora o LINQ ofereça uma maneira concisa de classificar coleções, é essencial considerar as implicações de desempenho, especialmente para conjuntos de dados grandes. Para cenários críticos de desempenho, você pode explorar alternativas como ordenação in-place usando o método List<t>.Sort.

Apresentando o IronPDF

Descubra as funcionalidades do IronPDF dentro da biblioteca C# PDF da Iron Software , que ajuda a ler e gerar documentos PDF. Ele consegue converter facilmente documentos formatados com informações de estilo para PDF. O IronPDF pode gerar PDFs a partir de strings HTML, ou pode baixar o HTML de uma URL e então gerar os PDFs.

O IronPDF se destaca na conversão de HTML para PDF , preservando todos os layouts e estilos. Ele pode gerar PDFs a partir de diversos conteúdos da web, como relatórios, faturas e documentação. A ferramenta funciona com arquivos HTML, URLs e strings HTML para criar arquivos 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");
    }
}

Instalação

O IronPDF pode ser instalado usando o console do gerenciador de pacotes NuGet ou o gerenciador de pacotes do Visual Studio.

PM > Install-Package IronPdf

Você também pode instalar o IronPDF usando o Gerenciador de Pacotes NuGet pesquisando "IronPDF" na barra de pesquisa.

C# Orderby (Como Funciona para Desenvolvedores): Figura 2 - Instalando IronPDF através do Gerenciador de Pacotes NuGet

Gerando um PDF usando o IronPDF

Abaixo está o código para gerar um relatório em PDF usando uma string HTML e o gerador 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");
    }
}

Aqui, estamos primeiro gerando uma string HTML de sortedPeople que é ordenada em ordem crescente com toda a formatação necessária para os relatórios. Em seguida, usamos o IronPDF para gerar um documento PDF. Usamos o método RenderHtmlAsPdf para converter a string HTML em um documento PDF.

Saída

O seguinte resultado está disponível no PDF:

C# Orderby (Como Funciona para Desenvolvedores): Figura 3 - PDF de saída do código anterior

Licenciamento (Teste Gratuito Disponível)

Uma chave de avaliação pode ser obtida em Licença de Avaliação do IronPDF . Essa chave precisa ser inserida no arquivo appsettings.json.

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

Forneça seu e-mail para obter uma licença de avaliação.

Conclusão

O método OrderBy em C# é uma ferramenta versátil para classificar coleções com base em diversos critérios. Quer você esteja classificando em ordem crescente ou decrescente, por um ou vários critérios, ou usando comparadores personalizados, dominar o OrderBy pode melhorar significativamente a clareza e a eficiência do seu código.

Em conjunto com a biblioteca IronPDF para geração de documentos PDF , forma uma ótima combinação para gerar uma coleção bem formatada e organizada em formato de documento.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.