.NETヘルプ C# Orderby(開発者向けの動作方法) Jacob Mellor 更新日:2025年7月28日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る ソートはどのプログラミング言語においても基本的な操作であり、C#のOrderByメソッドはコレクション内の要素を整理するための強力なツールです。 配列、リスト、またはその他の列挙可能な構造を扱う際に、OrderByを活用する方法を理解することで、コードの可読性と機能性を大幅に向上させることができます。 この記事の後半では、Iron SoftwareのIronPDFライブラリを紹介し、LINQのOrderByメソッドとIronPDFを使用してフォーマットされたソート済みPDFを生成する方法について説明します。 LINQ OrderByメソッドとは何ですか? OrderBy メソッドは、C# の LINQ (統合言語クエリ) ライブラリの一部であり、要素を昇順で並べ替えるために特別に設計されています。 データをソートするデフォルトの方法であるため、昇順であることを示すキーワードは必要ありません。 LINQ OrderByメソッドの使用方法 データを昇順にソート C#では、このメソッドを適用する方法が2つあります:メソッドシンタックスとクエリシンタックスです。 私たちは、シンプルであるためメソッドシンタックスを使用します。 var sortedCollection = collection.OrderBy(item => item.OrderByProperty); var sortedCollection = collection.OrderBy(item => item.OrderByProperty); $vbLabelText $csharpLabel ここで、collection は並べ替えるソース コレクションであり、IEnumerable は要素を並べ替えるプロパティまたは式です。 OrderBy 内のラムダ式はソート基準を指定します。 データを降順にソート 降順で並べ替えるには、メソッドベースの構文を使用して、OrderByDescending メソッドを使用できます。 var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty); var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty); $vbLabelText $csharpLabel 複数の基準でデータをソート 現実世界のシナリオでは、複数の基準に基づいてコレクションをソートする必要があることがよくあります。 OrderBy は、複数の ThenBy または ThenByDescending 呼び出しを連鎖させることによってこれを可能にします。 var multiSortedCollection = collection .OrderBy(item => item.OrderByProperty1) .ThenByDescending(item => item.OrderByProperty2); var multiSortedCollection = collection .OrderBy(item => item.OrderByProperty1) .ThenByDescending(item => item.OrderByProperty2); $vbLabelText $csharpLabel この例では、コレクションは最初に OrderByProperty1 で昇順にソートされます。 次に、同じ OrderByProperty1 値を持つ要素については、 OrderByProperty2 で降順でソートされます。 カスタム比較子 より複雑なソート要件のために、カスタム比較子を使用することができます。 OrderBy メソッドを使用すると、次の例に示すように、IComparer<t> 実装を渡すことができます。 var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer()); var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer()); $vbLabelText $csharpLabel ここで、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); } } } 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); } } } $vbLabelText $csharpLabel この例では、整数のリストは 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 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); } } } $vbLabelText $csharpLabel この例では、文字列のリストをアルファベット順に昇順でソートする方法を示します。 カスタムオブジェクトのリストをソート 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}"); } } } 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}"); } } } $vbLabelText $csharpLabel この例では、カスタム Person オブジェクトのリストが、Age プロパティに基づいて昇順に並べ替えられます。 次の出力がコンソールに表示されます。 文字列の比較を処理する 文字列プロパティを扱う際に、大文字小文字を区別しないソートを行いたい場合があります。 var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase); var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase); $vbLabelText $csharpLabel この例では、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"); } } 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"); } } $vbLabelText $csharpLabel インストール IronPDFはNuGetパッケージマネージャコンソールを使用して、またはVisual Studioパッケージマネージャを使用してインストールできます。 Install-Package IronPdf NuGetパッケージマネージャで"IronPDF"という名前を検索して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"); } } // 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"); } } $vbLabelText $csharpLabel ここではまず、レポートに必要なすべての書式を使用して昇順に並べ替えられた、sortedPeople から HTML 文字列を生成しています。 次に、IronPDFを使用してPDFドキュメントを生成します。 HTML 文字列を PDF ドキュメントに変換するには、RenderHtmlAsPdf メソッドを使用します。 出力 次の出力がPDFに表示されます。 ライセンス (無料トライアル利用可能) IronPDF Trial Licenseからトライアルキーを取得できます。 このキーはappsettings.jsonに配置する必要があります。 "IronPdf.LicenseKey": "your license key" トライアルライセンスを取得するには、メールアドレスを提供してください。 結論 C#のOrderByメソッドは、さまざまな基準でコレクションをソートするための柔軟なツールです。 昇順または降順、単一または複数の基準、またはカスタム比較子を使用するかどうかにかかわらず、OrderByを習得することでコードの明快さと効率性を大幅に向上させることができます。 PDFドキュメントを生成するためのIronPDFライブラリとともに、美しくフォーマットされたソート済みのコレクションをドキュメントとして生成するための素晴らしい組み合わせです。 よくある質問 C#のOrderByメソッドはどのように機能しますか? C#のOrderByメソッドは、LINQライブラリの一部で、コレクションの要素を昇順にソートします。メソッド構文とクエリ構文の両方で使用可能で、整数、文字列、カスタムオブジェクトを扱うのに十分汎用的です。 C#でデータを降順にソートする方法は? C#でデータを降順にソートするには、OrderByDescendingメソッドを使用できます。これはLINQライブラリの一部で、異なるソートニーズに応じてOrderByを補完します。 C#で複数のフィールドでソートすることは可能ですか? はい、C#ではOrderByとThenByまたはThenByDescendingを組み合わせることで複数のフィールドでソートできます。これにより、複数の属性に基づいてコレクションをソートするための複雑なソート基準が可能になります。 カスタムコンパレータとは何であり、C#のソートでどのように使用されますか? C# におけるカスタムコンパイラーは、要素をソートする際にカスタムロジックを提供する IComparer インターフェースの実装です。これは、複雑なオブジェクトをソートする際や、デフォルトのソート動作が特定の要件を満たさない場合に便利です。 C#でIronPDFを使用してPDFを生成するにはどうすればよいですか? C#でIronPDFを使用して、HTML文字列、ファイル、またはウェブURLからPDFを生成できます。IronPDFは元のコンテンツのレイアウトとスタイルを維持し、レポートや請求書などのプロフェッショナルなドキュメントの作成に最適です。 C#プロジェクトにIronPDFをインストールする手順は何ですか? IronPDFはNuGetパッケージマネージャーを使用してC#プロジェクトにインストールできます。コンソールでdotnet add package IronPDFコマンドを実行するか、Visual Studioのパッケージマネージャーを使用してプロジェクトに追加できます。 IronPDFは、PDF生成のためにC#のOrderByとどのように統合されますか? IronPDFはC#のOrderByと統合して、ソートされたフォーマットのPDFレポートを作成できます。レンダリング前にデータコレクションをOrderByでソートすることで、PDF出力がソート基準に準拠して整理されます。 IronPDFはウェブページのURLをPDFに変換できますか? はい、IronPDFはURLからのウェブコンテンツをPDFドキュメントに変換できます。ウェブページの元のレイアウトとスタイルを維持するため、ウェブページのアーカイブや印刷可能バージョンの作成に適しています。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 関連する記事 更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む 更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む C# Dev Kit VS Code Extension(開発者向けの動作方法)MSTest C#(開発者向けの動...
更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む
更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む