透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
整列はどのプログラミング言語でも基本的な操作であり、C#のOrderByメソッドはコレクション内の要素を整理するための強力なツールです。 配列、リスト、その他の列挙可能な構造を扱う際に、OrderByを活用する方法を理解することで、コードの可読性と機能性が大幅に向上します。
この記事の後半では、Iron SoftwareのIronPDFライブラリ私たちがLINQのOrderByメソッドとIronPDFを使用してフォーマットされ並べ替えられたPDFを生成する方法。
OrderBy
メソッドは LINQ の一部です。(言語統合クエリ (Language-Integrated Query))C#のライブラリで、特に要素を昇順に並べ替えるように設計されています; データをソートするデフォルトの方法であるため、昇順キーワードは必要ありません。
C#では、メソッド構文とクエリ構文の2つの方法があります。 方法の構文を使用します。これは簡単明瞭だからです。
var sortedCollection = collection.OrderBy(item => item.OrderByProperty);
var sortedCollection = collection.OrderBy(item => item.OrderByProperty);
ここで、コレクションはソートしたい IEnumerable
ソースコレクションであり、OrderByProperty
は要素を並べ替えたいプロパティや式です。 OrderBy
内のラムダ式拡張メソッドは、ソートの基準を指定します。
降順で並べ替えるには、メソッドベースの構文を使用して OrderByDescending
メソッドを使用できます。
var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty);
var sortedCollectionDesc = collection.OrderByDescending(item => item.OrderByProperty);
実際のシナリオでは、複数の条件に基づいてコレクションをソートする必要がよくあります。 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);
この例では、コレクションはまず OrderByProperty1 で昇順にソートされます。 次に、同じOrderByProperty1の値を持つ要素について、降順にOrderByProperty2でソートします。
より複雑な並べ替えの要件には、カスタムコンパレータを使用できます。 OrderBy
メソッドは、IComparer
を渡すことを許可します
var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer());
var customSortedCollection = collection.OrderBy(item => item.Property, new CustomComparer());
以下は、CustomComparer
が IComparer
を実装するクラスです。
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);
}
}
}
この例では、整数のリストが 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);
}
}
}
この例は、文字列のリストをアルファベット順に昇順でソートする方法を示しています。
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}");
}
}
}
この例では、カスタムなPersonオブジェクトのリストが年齢プロパティに基づいて昇順にソートされます。
以下の出力がコンソールに表示されます。
文字列プロパティを扱う場合、大文字小文字を区別しないソートを保証したいかもしれません:
var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase);
var sortedPeopleByName = people.OrderBy(person => person.LastName, StringComparer.OrdinalIgnoreCase);
この例では、StringComparer.OrdinalIgnoreCase
を使用して、LastName
プロパティに基づく大文字と小文字を区別しないソートを実行します。
LINQはコレクションを整理するための簡潔な方法を提供しますが、特に大規模なデータセットの場合にはパフォーマンスの影響を考慮することが重要です。 パフォーマンスが重要なシナリオでは、List
を使用してその場でソートするような代替案を検討することをお勧めします。
IronPDFの機能を見るからのC# PDFライブラリ内。Iron Softwareまた、PDFドキュメントの読み取りと生成を支援する「.NET.NET.NET.NET.NET. スタイル情報を含むフォーマット文書を簡単に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");
}
}
IronPDFは以下を使用してインストールできますNuGetパッケージマネージャコンソールまたはVisual Studioのパッケージマネージャを使用します。
dotnet add package IronPdf
dotnet add package IronPdf
検索バーで "ironpdf "を検索し、NuGetパッケージマネージャを使ってIronPDFをインストールすることもできます。
下記はHTML文字列とIronPDFジェネレーターを使ってPDFレポートを生成するコードです:
// See https://aka.ms/new-console-template for more information
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);
string name = "Sam";
var count = people.Count;
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
var pdfDocument = new ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("personByAge.pdf");
}
}
// See https://aka.ms/new-console-template for more information
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);
string name = "Sam";
var count = people.Count;
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
var pdfDocument = new ChromePdfRenderer();
pdfDocument.RenderHtmlAsPdf(content).SaveAs("personByAge.pdf");
}
}
ここでは、レポートに必要なすべての書式を含む昇順で並べ替えられた sortedPeople
からHTML文字列を最初に生成しています。 次にIronPDFを使用してPDF文書を生成します。 RenderHtmlAsPdf`メソッドを使用して、HTML文字列をPDFドキュメントに変換します。
PDFでは以下の出力が可能です。
試用キーはから取得できますIronPDF トライアルライセンス. このキーはappsettings.jsonに配置する必要があります。
"IronPdf.LicenseKey": "your license key"
"IronPdf.LicenseKey": "your license key"
試用ライセンスを取得するためにメールアドレスを提供してください。
C#のOrderByメソッドは、さまざまな基準に基づいてコレクションをソートするための多用途なツールです。 昇順または降順での並べ替え、単一または複数の基準による並べ替え、またはカスタムコンパレータの使用に関わらず、OrderByを習得することは、コードの明確さと効率を大幅に向上させることができます。
一緒にPDFドキュメントを生成するIronPDFライブラリまた、このようなツールは、美しくフォーマットされ、ソートされたコレクションをドキュメントとして生成するのに最適な組み合わせです。