.NETヘルプ C# LINQ Distinct(開発者向けの動作方法) Jacob Mellor 更新日:2025年6月22日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る C# の強力な言語機能である言語統合クエリ (LINQ) により、プログラマはさまざまなデータ ソースに対して明確で表現力豊かなクエリを作成できます。 この投稿では、IronPDF の使用法について、PDF ドキュメントを操作するための多用途な C# ライブラリとともに、LINQ の Distinct 関数を使用する方法について説明します。 この組み合わせがどのようにしてコレクションからユニークなドキュメントを作成するプロセスを簡素化できるかを示します。 この記事では、IronPDFとともにC# LINQ distinct関数について学びます。 C# LINQ Distinct メソッドの使用方法 新しいコンソールプロジェクトを作成します。 System.Linq 名前空間をインポートします。 複数のアイテムを含むリストを作成します。 リストからメソッド Distinct() を呼び出します。 ユニークな値を取得し、結果をコンソールに表示します。 作成したすべてのオブジェクトを破棄します。 LINQとは何か 開発者は、C# の LINQ (Language Integrated Query) 機能を使用して、コード内で直接データ操作のための明確で表現力豊かなクエリを作成できます。 .NET Framework 3.5 に初めて含まれた LINQ は、データベースやコレクションを含むさまざまなデータ ソースのクエリを実行するための標準構文を提供します。 LINQ では、Where や Select などの演算子を使用して、フィルタリングや投影などの単純なタスクが簡単に実行できるため、コードの読みやすさが向上します。 この機能により、最適な速度で遅延実行が可能なため、データ操作の操作が迅速かつ SQL に類似した自然な方法で完了することを保証するために、C# 開発者にとって非常に重要です。 LINQ Distinct の理解 LINQ の Distinct 関数を使用して、コレクションまたはシーケンスから重複する要素を削除できます。 カスタム等価比較子が存在しない場合、デフォルトの比較子を使用してアイテムを比較します。 ユニークなコレクションで作業し、重複を削除する際に優れた選択肢です。 Distinct テクニックでは、デフォルトの等価比較子を使用して値を評価します。 重複を除外して、ユニークな要素のみを返します。 基本的な使い方 個別の項目を取得するには、コレクションに対して直接 Distinct メソッドを使用するのが最も簡単な方法です。 using System.Linq; using System.Collections.Generic; public class DistinctExample { public static void Example() { // Example list with duplicate integers List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 }; // Using Distinct to remove duplicates var distinctNumbers = numbers.Distinct(); // Display the distinct numbers foreach (var number in distinctNumbers) { Console.WriteLine(number); } } } using System.Linq; using System.Collections.Generic; public class DistinctExample { public static void Example() { // Example list with duplicate integers List<int> numbers = new List<int> { 1, 2, 2, 3, 4, 4, 5 }; // Using Distinct to remove duplicates var distinctNumbers = numbers.Distinct(); // Display the distinct numbers foreach (var number in distinctNumbers) { Console.WriteLine(number); } } } $vbLabelText $csharpLabel カスタム等価比較者 Distinct 関数のオーバーロードを使用して、カスタムの等価比較を定義できます。 特定の基準に従ってアイテムを比較したい場合に役立ちます。 次の例を参照してください。 using System; using System.Collections.Generic; using System.Linq; public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class PersonEqualityComparer : IEqualityComparer<Person> { public bool Equals(Person x, Person y) { return x.FirstName == y.FirstName && x.LastName == y.LastName; } public int GetHashCode(Person obj) { return obj.FirstName.GetHashCode() ^ obj.LastName.GetHashCode(); } } public class DistinctCustomComparerExample { public static void Example() { // Example list of people List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe" }, new Person { FirstName = "Jane", LastName = "Doe" }, new Person { FirstName = "John", LastName = "Doe" } }; // Using Distinct with a custom equality comparer var distinctPeople = people.Distinct(new PersonEqualityComparer()); // Display distinct people foreach (var person in distinctPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}"); } } } using System; using System.Collections.Generic; using System.Linq; public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class PersonEqualityComparer : IEqualityComparer<Person> { public bool Equals(Person x, Person y) { return x.FirstName == y.FirstName && x.LastName == y.LastName; } public int GetHashCode(Person obj) { return obj.FirstName.GetHashCode() ^ obj.LastName.GetHashCode(); } } public class DistinctCustomComparerExample { public static void Example() { // Example list of people List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe" }, new Person { FirstName = "Jane", LastName = "Doe" }, new Person { FirstName = "John", LastName = "Doe" } }; // Using Distinct with a custom equality comparer var distinctPeople = people.Distinct(new PersonEqualityComparer()); // Display distinct people foreach (var person in distinctPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}"); } } } $vbLabelText $csharpLabel 値型での Distinct 使用 値型で Distinct メソッドを使用する場合は、カスタムの等価比較を指定する必要はありません。 using System; using System.Collections.Generic; using System.Linq; public class DistinctValueTypeExample { public static void Example() { List<int> integers = new List<int> { 1, 2, 2, 3, 4, 4, 5 }; // Using Distinct to remove duplicates var distinctIntegers = integers.Distinct(); // Display distinct integers foreach (var integer in distinctIntegers) { Console.WriteLine(integer); } } } using System; using System.Collections.Generic; using System.Linq; public class DistinctValueTypeExample { public static void Example() { List<int> integers = new List<int> { 1, 2, 2, 3, 4, 4, 5 }; // Using Distinct to remove duplicates var distinctIntegers = integers.Distinct(); // Display distinct integers foreach (var integer in distinctIntegers) { Console.WriteLine(integer); } } } $vbLabelText $csharpLabel 匿名型での Distinct 使用 Distinct は、特定の属性に基づいて重複を削除するために匿名型で使用できます。 次の例を参照してください。 using System; using System.Collections.Generic; using System.Linq; public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class DistinctAnonymousTypesExample { public static void Example() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe" }, new Person { FirstName = "Jane", LastName = "Doe" }, new Person { FirstName = "John", LastName = "Doe" } }; // Using Distinct with anonymous types var distinctPeople = people .Select(p => new { p.FirstName, p.LastName }) .Distinct(); // Display distinct anonymous types foreach (var person in distinctPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}"); } } } using System; using System.Collections.Generic; using System.Linq; public class Person { public string FirstName { get; set; } public string LastName { get; set; } } public class DistinctAnonymousTypesExample { public static void Example() { List<Person> people = new List<Person> { new Person { FirstName = "John", LastName = "Doe" }, new Person { FirstName = "Jane", LastName = "Doe" }, new Person { FirstName = "John", LastName = "Doe" } }; // Using Distinct with anonymous types var distinctPeople = people .Select(p => new { p.FirstName, p.LastName }) .Distinct(); // Display distinct anonymous types foreach (var person in distinctPeople) { Console.WriteLine($"{person.FirstName} {person.LastName}"); } } } $vbLabelText $csharpLabel 特定のプロパティによる Distinct オブジェクトを操作するときは、特定の属性で区別するためのロジックを作成するか、サードパーティのライブラリ (MoreLINQ など) の DistinctBy 拡張メソッドを利用することができます。 // Ensure to include the MoreLINQ Library using MoreLinq; using System; using System.Collections.Generic; using System.Linq; public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class DistinctByExample { public static void Example() { List<Person> people = new List<Person> { new Person { Id = 1, FirstName = "John", LastName = "Doe" }, new Person { Id = 2, FirstName = "Jane", LastName = "Doe" }, new Person { Id = 1, FirstName = "John", LastName = "Doe" } }; // Using DistinctBy to filter distinct people by Id var distinctPeople = people.DistinctBy(p => p.Id); // Display distinct people foreach (var person in distinctPeople) { Console.WriteLine($"{person.Id}: {person.FirstName} {person.LastName}"); } } } // Ensure to include the MoreLINQ Library using MoreLinq; using System; using System.Collections.Generic; using System.Linq; public class Person { public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } public class DistinctByExample { public static void Example() { List<Person> people = new List<Person> { new Person { Id = 1, FirstName = "John", LastName = "Doe" }, new Person { Id = 2, FirstName = "Jane", LastName = "Doe" }, new Person { Id = 1, FirstName = "John", LastName = "Doe" } }; // Using DistinctBy to filter distinct people by Id var distinctPeople = people.DistinctBy(p => p.Id); // Display distinct people foreach (var person in distinctPeople) { Console.WriteLine($"{person.Id}: {person.FirstName} {person.LastName}"); } } } $vbLabelText $csharpLabel IronPDF プログラマーは .NET ライブラリ IronPDF ウェブサイト の援助を得て、C# 言語で PDF ドキュメントを作成、編集、変更することができます。 このプログラムは、HTML からの PDF の生成、HTML から PDF への変換、PDF ドキュメントのマージまたは分割、既存の PDF へのテキスト、画像、注釈の追加などの PDF ファイルに関するさまざまなタスクを可能にするさまざまなツールと機能を提供します。 IronPDF について詳しくは、IronPDF ドキュメント を参照してください。 IronPDF の主な機能は、HTML から PDF への変換で、レイアウトとスタイルを保持します。 Web コンテンツから 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 の機能 HTML から PDF への変換: IronPDF を使用して、HTML データ(ファイル、URL、および HTML コードの文字列を含む)を PDF ドキュメントに変換できます。 PDF 生成: C# プログラミング言語を使用して、PDF ドキュメントにテキスト、画像、およびその他の要素をプログラムで追加できます。 PDF 操作: IronPDF は、PDF ファイルを複数のファイルに分割したり、複数の PDF ドキュメントを 1 つのファイルにマージしたり、既存の PDF を編集したりできます。 PDF フォーム: このライブラリにより、PDF フォームを作成および記入でき、フォームデータを収集および処理する必要がある状況で役立ちます。 セキュリティ機能: IronPDF は PDF ドキュメントを暗号化し、パスワードと権限保護を提供するために使用できます。 テキスト抽出: PDF ファイルからテキストを抽出できます。 IronPDFをインストールする IronPDFライブラリを取得します; プロジェクトのセットアップには必要です。 これを実現するには、次のコードを NuGet パッケージマネージャーコンソールに入力します。 Install-Package IronPdf パッケージ "IronPDF" を検索するために NuGet パッケージ マネージャーを使用するという追加の選択肢があります。 IronPDF に関連するすべての NuGet パッケージのリストから、この中から必要なパッケージを選択してダウンロードできます。 IronPDF での LINQ 特定のデータ セットを持っており、そのセット内の異なる値に基づいてさまざまな PDF ドキュメントを作成したいと考えている状況を考えてみましょう。 ここで、LINQ の Distinct の有用性が発揮されます。特にIronPDFと組み合わせて使用してドキュメントを迅速に作成すると、その有用性が発揮されます。 LINQ と IronPDF を使用してユニークな PDF を生成する using IronPdf; using System; using System.Collections.Generic; using System.Linq; public class DocumentGenerator { public static void Main() { // Sample data representing categories List<string> categories = new List<string> { "Technology", "Business", "Health", "Technology", "Science", "Business", "Health" }; // Use LINQ Distinct to filter out duplicate values var distinctCategories = categories.Distinct(); // Generate a distinct elements PDF document for each category foreach (var category in distinctCategories) { GeneratePdfDocument(category); } } private static void GeneratePdfDocument(string category) { // Create a new PDF document using IronPDF IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf(); PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>"); // Save the PDF to a file string pdfFilePath = $"{category}_Report.pdf"; pdf.SaveAs(pdfFilePath); // Display a message with the file path Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}"); } } using IronPdf; using System; using System.Collections.Generic; using System.Linq; public class DocumentGenerator { public static void Main() { // Sample data representing categories List<string> categories = new List<string> { "Technology", "Business", "Health", "Technology", "Science", "Business", "Health" }; // Use LINQ Distinct to filter out duplicate values var distinctCategories = categories.Distinct(); // Generate a distinct elements PDF document for each category foreach (var category in distinctCategories) { GeneratePdfDocument(category); } } private static void GeneratePdfDocument(string category) { // Create a new PDF document using IronPDF IronPdf.HtmlToPdf renderer = new IronPdf.HtmlToPdf(); PdfDocument pdf = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>"); // Save the PDF to a file string pdfFilePath = $"{category}_Report.pdf"; pdf.SaveAs(pdfFilePath); // Display a message with the file path Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}"); } } $vbLabelText $csharpLabel この例では、カテゴリ コレクションの Distinct メソッドを使用して、一連の異なるカテゴリが取得されます。 シーケンスから重複する要素を削除するのに役立ちます。 次に、IronPDF を使用してこれらのユニークな要素で PDF ドキュメントを作成します。 この方法は、ユニークなカテゴリのみに対して個別の PDF ドキュメントが生成されることを保証します。 コンソール出力 生成された PDF 出力 IronPDF を使用して HTML で PDF を生成するためのコード例について詳しくは、IronPDF HTML to PDF 例コード を参照してください。 結論 LINQ の Distinct 拡張メソッドをIronPDFと組み合わせると、値に基づいて一意の PDF ドキュメントを作成するための堅牢で効率的なメカニズムが提供されます。 カテゴリ、タグ、または別個のドキュメントが必要な他のあらゆるデータを処理する際に、コードを合理化し、効果的なドキュメントの作成を保証します。 データ処理に LINQ を、ドキュメント作成に IronPDF を利用することで、C# アプリケーションのさまざまな側面を管理するための信頼性が高く表現力豊かなソリューションを開発できます。 プロジェクトにこれらの戦略を使用する場合は、アプリケーションの特定のニーズを考慮し、最大限の信頼性とパフォーマンスを実現するように実装を調整してください。 よくある質問 C# でコレクションから重複するエントリを削除するにはどうすればよいですか? LINQ の Distinct メソッドを使用して、C# のコレクションから重複するエントリを削除できます。このメソッドは、IronPDF と組み合わせて、異なるデータカテゴリーからユニークな PDF ドキュメントを生成する際に特に便利です。 C# で HTML を PDF に変換する方法は? C# で HTML を PDF に変換するには、IronPDF の RenderHtmlAsPdf メソッドを使用できます。これにより、HTML 文字列やファイルを効率的に PDF ドキュメントに変換することが可能です。 LINQ の Distinct メソッドをカスタムオブジェクトで使用できますか? はい、LINQ の Distinct メソッドはカスタムの等価比較子を提供することでカスタムオブジェクトでも使用できます。これは、IronPDF を使用して PDF 生成プロセスで一意性を判断するための特定の基準を定義する必要がある場合に有用です。 LINQ を IronPDF と組み合わせて使用する利点は何ですか? LINQ を IronPDF と組み合わせて使用することで、開発者はデータ処理に基づいたユニークで効率的な PDF ドキュメントを作成できます。特に大規模なドキュメント生成タスクを管理する際に、コードの読みやすさとパフォーマンスが向上します。 LINQ の Distinct メソッドは PDF ドキュメントの作成をどう向上させますか? LINQ の Distinct メソッドは、最終出力に一意のエントリのみが含まれるようにすることで PDF ドキュメントの作成を向上させます。このメソッドは、さまざまなデータカテゴリーの異なる PDF ドキュメントを生成するために IronPDF と組み合わせて使用できます。 IronPDF 使用時にPDF出力をカスタマイズすることは可能ですか? はい、IronPDF ではページサイズ、マージン、ヘッダーやフッターの追加など、PDF 出力をカスタマイズするための様々なオプションが提供されています。このカスタマイズは、LINQ を組み合わせて使用することで、独自のドキュメント出力を作成することができます。 どのようなシナリオで LINQ の Distinct メソッドを PDF に使用する効果があるでしょうか? レポート生成、請求書、またはデータセットからの一意性を必要とする任意の文書を生成するシナリオは、LINQ の Distinct メソッドを使って PDF を作成することで効果を受けます。IronPDF を活用して、クリーンで独自の PDF 出力を効率的に生成することが可能です。 LINQ はデータ駆動型 PDF アプリケーションの効率をどのように向上させますか? LINQ は開発者がデータセットをフィルタリングし、操作した後に PDF を生成することができるため、データ駆動型 PDF アプリケーションの効率を向上させます。これにより、必要で一意のデータのみが 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# Internal(開発者向けの動作方法)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パターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む