IRONSOFTWAREHOME
開発者向けアップデート

C# Orderby(開発者向けの動作方法)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

ソートはどのプログラミング言語においても基本的な操作であり、C#のOrderByメソッドはコレクション内の要素を整理するための強力なツールです。 配列、リスト、またはその他の列挙可能な構造を扱う際に、OrderByを活用する方法を理解することで、コードの可読性と機能性を大幅に向上させることができます。

この記事の後半では、Iron SoftwareのIronPDFライブラリを紹介し、LINQのOrderByメソッドとIronPDFを使用してフォーマットされたソート済みPDFを生成する方法について説明します。

LINQ OrderByメソッドとは何ですか?

このOrderByメソッドは、C#のLINQ(Language-Integrated Query)ライブラリの一部であり、要素を昇順でソートするように特別に設計されています。 データをソートするデフォルトの方法であるため、昇順であることを示すキーワードは必要ありません。

LINQ OrderByメソッドの使用方法

データを昇順にソート

C#では、このメソッドを適用する方法が2つあります:メソッドシンタックスとクエリシンタックスです。 私たちは、シンプルであるためメソッドシンタックスを使用します。

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

ここで、OrderByPropertyは要素を注文したいプロパティまたは式です。 OrderBy内のラムダ式は、ソート基準を指定します。

データを降順にソート

降順でソートするには、メソッドベースの構文を使用してOrderByDescendingメソッドを使うことができます。

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

複数の基準でデータをソート

現実世界のシナリオでは、複数の基準に基づいてコレクションをソートする必要があることがよくあります。 ThenByDescending呼び出しをチェインすることでこれを可能にします。

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

この例では、コレクションは最初にOrderByProperty1で昇順にソートされます。 次に、同じOrderByProperty2で降順にソートされます。

カスタム比較子

より複雑なソート要件のために、カスタム比較子を使用することができます。 IComparer<t>実装を渡すことができます。

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

ここで、IComparer<t>インターフェースを実装するクラスであり、要素を比較するためのカスタムロジックを提供します。

実践例:オブジェクトのソート

整数のリストをソート

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

この例では、整数のリストはOrderByを使用して昇順にソートされています。

文字列のリストをソート

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

この例では、文字列のリストをアルファベット順に昇順でソートする方法を示します。

カスタムオブジェクトのリストをソート

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

この例では、カスタムAgeプロパティに基づいて昇順にソートされます。

次の出力がコンソールに表示されます。

C# Orderby (開発者向けの動作): 図1 - 前のコードのカスタムオブジェクトのソート出力

文字列の比較を処理する

文字列プロパティを扱う際に、大文字小文字を区別しないソートを行いたい場合があります。

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

この例では、LastNameプロパティに基づく大文字小文字を区別しないソートを実行します。

パフォーマンスの考慮事項

LINQはコレクションをソートするための簡潔な方法を提供しますが、大規模なデータセットではパフォーマンスの影響を考慮することが重要です。 パフォーマンスがクリティカルなシナリオでは、List<t>.Sortメソッドを使用してインプレースでソートするなどの代替手段を検討することができます。

IronPDFの紹介

C# PDFライブラリ内のIronPDFの機能を発見してください。これはPDF文書の読み取りと生成を支援します。 それはスタイル情報を持つフォーマットされた文書を簡単にPDFに変換することができます。 IronPDFはHTML文字列からPDFを生成するか、URLからHTMLをダウンロードしてその後PDFを生成することができます。

IronPDFはHTMLをPDFに変換する際に、すべてのレイアウトとスタイルを保持することで際立っています。 レポート、請求書、文書化など、さまざまなウェブコンテンツからPDFを生成することができます。 ツールはHTMLファイル、URL、およびHTML文字列を使用して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");
    }
}

インストール

IronPDFはNuGetパッケージマネージャコンソールを使用して、またはVisual Studioパッケージマネージャを使用してインストールできます。

PM > Install-Package IronPdf

NuGetパッケージマネージャーを使用して、検索バーに"IronPDF"と入力することでIronPDFをインストールすることもできます。

C# Orderby (開発者向けの動作): 図2 - NuGetパッケージマネージャを通じたIronPDFのインストール

IronPDFを使用してPDFを生成する

以下はHTML文字列とIronPDFジェネレーターを使用してPDFレポートを生成するコードです。

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

ここでは、sortedPeopleからHTML文字列を生成し、レポートに必要なすべてのフォーマットで昇順にソートしています。 次に、IronPDFを使用してPDFドキュメントを生成します。 HTML文字列をPDFドキュメントに変換するためにRenderHtmlAsPdfメソッドを使用します。

出力

次の出力がPDFに表示されます。

C# Orderby (開発者向けの動作): 図3 - 前のコードからの出力PDF

ライセンス (無料トライアル利用可能)

IronPDF Trial Licenseからトライアルキーを取得できます。 このキーはappsettings.jsonに配置する必要があります。

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

トライアルライセンスを取得するには、メールアドレスを提供してください。

結論

C#のOrderByメソッドは、さまざまな基準でコレクションをソートするための柔軟なツールです。 昇順または降順、単一または複数の基準、またはカスタム比較子を使用するかどうかにかかわらず、OrderByを習得することでコードの明快さと効率性を大幅に向上させることができます。

PDFドキュメントを生成するためのIronPDFライブラリとともに、美しくフォーマットされたソート済みのコレクションをドキュメントとして生成するための素晴らしい組み合わせです。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から