.NET ヘルプ

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

公開済み 2024年2月18日
共有:

イントロダクション

言語統合クエリ(LINQ)C# の強力な言語機能である は、プログラマーがさまざまなデータソースに対して明確で表現力豊かな検索を作成できるようにします。 この投稿では、以下について説明しますIronPDFPDF ドキュメントを扱うための多機能な C# ライブラリ。LINQのDistinct関数 この組み合わせが、コレクションからユニークな文書を作成するプロセスをどのように容易にするかを示します。 この記事では、IronPDFを使用してC#のLINQのdistinct関数について学びます。

C# LINQ Distinctメソッドの使い方

  1. 新しいコンソールプロジェクトを作成してください。

  2. System.Linq 名前空間をインポートします。

  3. 複数の項目を含むリストを作成します。

  4. メソッド Distinct を呼び出す()リストから。

  5. 一意の値を取得して、結果をコンソールに表示します。

  6. すべての作成されたオブジェクトを破棄してください。

LINQとは何ですか

開発者は、C#のLINQを使用して、コード内でデータ操作のための明快で表現力豊かなクエリを直接構築することができます。(言語統合クエリ (Language Integrated Query))機能 .NET Framework 3.5に初めて搭載されたLINQは、データベースやコレクションを含むさまざまなデータソースをクエリするための標準構文を提供します。 LINQは、WhereやSelectなどの演算子を使用することで、フィルタリングや投影のような簡単なタスクを容易にし、コードの可読性を向上させます。 この機能は、最適な速度のために実行を遅らせることができるため、SQLに類似した方法でデータ操作を迅速かつ自然に行うことができるC#開発者にとって重要です。

LINQ Distinct を理解する

LINQのDistinct関数を使用して、コレクションまたはシーケンスから重複する要素を削除できます。 カスタム等価比較子がない場合、それはデフォルトの比較子を使用してアイテムを比較します。 これは、ユニークなコレクションを処理し、重複するコンポーネントを削除する必要がある場合に最適なオプションです。 Distinct テクニックは、値を評価するためにデフォルトの等価比較を使用します。 それに基づいて重複している特定のプロパティに対してfalseを返し、それに基づいて一意の要素を表示します。

基本的な使用法

異なるアイテムを取得するための最も簡単な方法は、コレクションに直接Distinctメソッドを使用することです。

var distinctNumbers = numbers.Distinct();
var distinctNumbers = numbers.Distinct();
Dim distinctNumbers = numbers.Distinct()
VB   C#

カスタム平等コンパイラ

Distinct関数のオーバーロードを使用して、カスタムの等価比較を定義することができます。 これは、特定の基準に従ってアイテムを比較したい場合に役立ちます。 以下の例を参照してください:

var distinctPeople = people.Distinct(new PersonEqualityComparer());
var distinctPeople = people.Distinct(new PersonEqualityComparer());
Dim distinctPeople = people.Distinct(New PersonEqualityComparer())
VB   C#

値型でDistinctを使用する

値型を使用して Distinct メソッドを使用する場合、カスタムの等価比較を提供する必要はありません。

var distinctIntegers = integers.Distinct();
var distinctIntegers = integers.Distinct();
Dim distinctIntegers = integers.Distinct()
VB   C#

匿名型を使用したDistinct

匿名型を使用して、特定の属性に基づいて重複を除去する場合、「Distinct」を使用できます。 以下の例を参照してください:

var distinctPeople = people
    .Select(p => new { p.FirstName, p.LastName })
    .Distinct();
var distinctPeople = people
    .Select(p => new { p.FirstName, p.LastName })
    .Distinct();
Dim distinctPeople = people.Select(Function(p) New With {
	Key p.FirstName,
	Key p.LastName
}).Distinct()
VB   C#

特定のプロパティによる区別

オブジェクトを扱う際に、特定の属性で識別するためのロジックを自分で作成することもできますし、サードパーティライブラリから提供されるDistinctBy拡張メソッドを利用することもできます。(さらに多くのLINQのように).

var distinctPeople = people.DistinctBy(p => p.Id);
var distinctPeople = people.DistinctBy(p => p.Id);
Dim distinctPeople = people.DistinctBy(Function(p) p.Id)
VB   C#

IronPDF

プログラマーは、.NET ライブラリの助けを借りて、C# 言語を使用して PDF ドキュメントを作成、編集、および変更することができます。IronPDF ウェブサイト. プログラムは、PDFファイルに関連するさまざまなタスクを可能にするための一連のツールと機能を提供します。具体的には、HTMLからPDFの生成、HTMLの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");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
VB   C#

IronPDFの機能

  • HTMLをPDFに変換:IronPDFを使用して、ファイル、URL、HTMLコードの文字列を含むあらゆる種類のHTMLデータをPDFドキュメントに変換できます。
  • PDF生成: テキスト、画像、その他の要素は、C#プログラミング言語を使用してプログラム的にPDFドキュメントに追加することができます。
  • PDFマニピュレーション: IronPDFはPDFファイルを複数のファイルに分割し、複数のPDFドキュメントを1つのファイルに統合し、既存のPDFを編集できます。
  • PDFフォーム:このライブラリはユーザーがPDFフォームを作成および記入できるようにするため、フォームデータの収集と処理が必要なシナリオで役立ちます。
  • セキュリティ機能: IronPDF は、PDF ドキュメントを暗号化し、パスワードおよび権限保護を提供するために使用できます。
  • テキスト抽出:PDFファイルからテキストを抽出するには、IronPDFを使用します。

IronPDF をインストール

IronPDFライブラリを入手してください。 将来のパッチに必要です。 以下のコードをNuGetパッケージマネージャーコンソールに入力して、これを達成してください:

Install-Package IronPdf

C# LINQ Distinct(C# LINQ ディスティンクト)(開発者向けの仕組み):図1 - NuGet Package Manager Consoleを使用してIronPDFライブラリをインストールするには、以下のコマンドを入力します:Install IronPDF または dotnet add package IronPdf を入力してください。

NuGetパッケージマネージャーを使用して「IronPDF」パッケージを検索することも選択肢の一つです。「IronPDF」に関連するすべてのNuGetパッケージの中から、必要なパッケージを選択してダウンロードできます。

C# LINQ Distinct(C# LINQ ディスティンクト)(開発者向けの仕組み):図2 - NuGet Package Managerを使用してIronPDFライブラリをインストールするには、Browseタブで IronPDF パッケージを検索し、最新バージョンのIronPDFパッケージを選択してダウンロードし、プロジェクトにインストールしてください。

IronPDFでのLINQ

データセットがあり、そのセット内の異なる値に応じて様々なPDFドキュメントを作成したい状況を考えてみてください。 これは特にIronPDFを使用してドキュメントを迅速に作成する際に、LINQのDistinctの有用性が際立つ場所です。

LINQとIronPDFを使用してユニークなPDFを生成

using IronPdf;
using System;
using System.Collections.Generic;
using System.Linq;
public class DocumentGenerator
{
    public string result {get;set;}
    public int id {get;set;}
    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
        // distinct query syntax
        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 string result {get;set;}
    public int id {get;set;}
    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
        // distinct query syntax
        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}");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic
Imports System.Linq
Public Class DocumentGenerator
	Public Property result() As String
	Public Property id() As Integer
	Public Shared Sub Main()
		' Sample data representing categories
		Dim categories As New List(Of String) From {"Technology", "Business", "Health", "Technology", "Science", "Business", "Health"}
		' Use LINQ Distinct to filter out duplicate values
		' distinct query syntax
		Dim distinctCategories = categories.Distinct()
		' Generate a distinct elements PDF document for each category
		For Each category In distinctCategories
			GeneratePdfDocument(category)
		Next category
	End Sub
	Private Shared Sub GeneratePdfDocument(ByVal category As String)
		' Create a new PDF document using IronPDF
		Dim renderer As New IronPdf.HtmlToPdf()
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf($"<h1>{category} Report</h1>")
		' Save the PDF to a file
		Dim pdfFilePath As String = $"{category}_Report.pdf"
		pdf.SaveAs(pdfFilePath)
		' Display a message with the file path
		Console.WriteLine($"PDF generated successfully. File saved at: {pdfFilePath}")
	End Sub
End Class
VB   C#

この例では、カテゴリコレクションにDistinctメソッドを使用して、一連の明確なカテゴリを取得しています。 これはシーケンスから重複する要素を削除するのに役立ちます。 次に、IronPDFを使用して独自の要素を含むPDFドキュメントを作成します。 この方法により、異なるカテゴリごとに個別のPDFドキュメントが生成されることが保証されます。

コンソール出力

C# LINQ Distinct(C# LINQ ディスティンクト)(開発者向け使用方法): 図3 - コンソール出力

生成されたPDF出力

C# LINQ Distinct(開発者向けの動作方法):図4 - PDF出力:技術レポート

HTMLを使ってPDFを生成するIronPDFのコード例についてもっと知りたい方はIronPDF HTMLからPDFへのサンプルコード.

結論

IronPDFと組み合わせたLINQのDistinct拡張メソッドは、値に基づいて一意のPDFドキュメントを作成するための堅牢で効率的なメカニズムを提供します。 このメソッドはカテゴリ、タグ、または別々のドキュメントが必要な他のデータを扱う場合でも、コードを効率化し、効果的なドキュメント作成を保証します。

LINQによるデータ処理とIronPDFによるドキュメント生成を活用することで、C#アプリケーションのさまざまな側面を管理するために信頼性が高く表現力豊かなソリューションを開発できます。 これらの戦略をプロジェクトで使用する際には、アプリケーションの特定のニーズを考慮し、最大の信頼性とパフォーマンスを達成するために実装を調整してください。

< 以前
C# 内部 (開発者向けの仕組み)
次へ >
C# 優先順位キュー(開発者向けの仕組み)