フッターコンテンツにスキップ
開発者向けアップデート

C# SortedList の使い方(開発者向けガイド)

C# SortedList の紹介

SortedListとは?

C# SortedList クラスは、キーと値のペアのコレクションであり、辞書に似ていますが、キーによる自動ソートという追加の利点があります。 これは System.Collections.Generic 名前空間の一部であり、ソートされたデータにすばやくアクセスする必要があるシナリオに設計されています。 SortedList<TKey, TValue> は、データを特定の順序で維持し、キーによって要素に効率的にアクセスする必要がある場合に理想的です。

PDF生成タスクとSortedListsを組み合わせて作業する場合、IronPDFはこのクラスと完全に統合され、PDF生成に対する制御を強化します。

主要な機能と使用例

*キーと値のペアの保存:辞書と同様に、SortedList はデータをキーと値のペアとして保存します。

  • 自動ソート: SortedList は、キーに基づいて関連する値をデフォルトで昇順にソートします。 *効率的なデータ取得:*キーによって関連付けられた値をすばやく取得できるため、検索に適しています。 使用例:**名前、日付、数値の順序付きリストの管理など、並べ替えられたデータを必要とするアプリケーションに役立ちます。

SortedListの動作

データ構造の概要

パブリック クラス SortedList は、配列とハッシュテーブルのハイブリッドであり、そのアイテムをキーで整理します。 内部的にはソートされた配列を使用してキー値を順序付け、キーによる効率的なルックアップを保証します。 ただし、挿入および削除の操作は Dictionary よりも遅くなることがあります。

ソート機構

デフォルトでは、SortedList<TKey, TValue>IComparable インターフェースを使用してキーを昇順にソートし、文字列キーおよびその他の型がデフォルトの比較動作を実装することを保証します。 カスタムのソート順が必要な場合、カスタムの比較を提供することができます。

利点と制限

*長所:* 高速キー アクセス:キーによる高速 O(log n) アクセスを提供します。 ソート順序:追加のソートのオーバーヘッドなしで、データはキーによって自動的にソートされます。 短所:**

  • 挿入速度: 挿入において、特に大規模なデータサイズに対して Dictionary よりも遅いです。 *非キー操作の効率が限られる:データが主に特定のキー値によってアクセスされないシナリオでは効率が低下します。

C# SortedList の操作

SortedListの作成

C# で SortedList を作成するには、デフォルトコンストラクタを使用するか、カスタムソートが必要な場合は IComparer を渡します。 SortedList にはデフォルトで初期容量が 16 あり、パフォーマンス向上のためにおおよそのサイズが分かっている場合に調整できます。

// Create a SortedList with integer keys and string values
SortedList<int, string> sortedList = new SortedList<int, string>();
// Create a SortedList with integer keys and string values
SortedList<int, string> sortedList = new SortedList<int, string>();
' Create a SortedList with integer keys and string values
Dim sortedList As New SortedList(Of Integer, String)()
$vbLabelText   $csharpLabel

アイテムの追加

SortedList にキーと値のペアを Add メソッドを使用して追加します。 これにより、アイテムはキーによりソートされます。 次のコードは、キーの昇順にSortedListデータを保持します。

sortedList.Add(1, "Apple");
sortedList.Add(3, "Banana");
sortedList.Add(2, "Cherry");
sortedList.Add(1, "Apple");
sortedList.Add(3, "Banana");
sortedList.Add(2, "Cherry");
sortedList.Add(1, "Apple")
sortedList.Add(3, "Banana")
sortedList.Add(2, "Cherry")
$vbLabelText   $csharpLabel

要素へのアクセスと修正

キーを使用して SortedList 内の要素にアクセスします。 キーに直接関連する値を取得したり修正したりできます。

// Accessing a specific value by key
string value = sortedList[1];  // Retrieves "Apple"
// Modifying a value
sortedList[1] = "Avocado";   // Changes the value associated with key 1 to "Avocado"
// Accessing a specific value by key
string value = sortedList[1];  // Retrieves "Apple"
// Modifying a value
sortedList[1] = "Avocado";   // Changes the value associated with key 1 to "Avocado"
' Accessing a specific value by key
Dim value As String = sortedList(1) ' Retrieves "Apple"
' Modifying a value
sortedList(1) = "Avocado" ' Changes the value associated with key 1 to "Avocado"
$vbLabelText   $csharpLabel

アイテムの削除

特定のキーを使用して Remove メソッドを使用したり、指定されたインデックスを使用して RemoveAt することでアイテムを削除します。 どちらも SortedList からのオブジェクトの制御された削除を許可します。

sortedList.Remove(3);       // Removes the entry with key 3
sortedList.RemoveAt(0);     // Removes the entry at the zero-based index 0
sortedList.Remove(3);       // Removes the entry with key 3
sortedList.RemoveAt(0);     // Removes the entry at the zero-based index 0
sortedList.Remove(3) ' Removes the entry with key 3
sortedList.RemoveAt(0) ' Removes the entry at the zero-based index 0
$vbLabelText   $csharpLabel

SortedListの反復

SortedList 上で foreach ループを使用して、キーと値の両方をソートされた順序で取得します。

foreach (KeyValuePair<int, string> kvp in sortedList)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
foreach (KeyValuePair<int, string> kvp in sortedList)
{
    Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
For Each kvp As KeyValuePair(Of Integer, String) In sortedList
	Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}")
Next kvp
$vbLabelText   $csharpLabel

C# ソート済みリスト(開発者向けの作動方法):図1

SortedListを使用した実用例

*例 1:学生名とロール番号など、順序が重要な単純なキーと値の形式でデータを保存および取得します。

  • 例 2: ソートされたトランザクションログやランク付けされたスコアを表示するなどより複雑なシナリオで SortedList を使用します。

ベストプラクティス:

  • キーが主要なアクセスポイントであり、ソートされたままである必要がある場合は SortedList を使用します。
  • 頻繁な挿入を行う場合は、パフォーマンスを向上させるために SortedDictionary などの代替を検討してください。

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

SortedListとDictionaryおよびListの比較

  • SortedList と Dictionary: SortedList は、ソートのオーバーヘッドにより、Dictionary に比べて挿入速度が遅くなります。
  • SortedList と List:リストとは異なり、SortedList はキーで要素にアクセスし、ソートされた順序を維持するように設計されています。

SortedList を使用する場合:並べ替えられたデータが必要で、主にキーでアクセスする場合、特に読み取りが多いシナリオで使用します。

PDFエクスポートへのIronPDFの統合

IronPDFの紹介

C# ソート済みリスト(開発者向けの作動方法):図2

IronPDFは、C#でPDFファイルを生成し、修正するための強力なライブラリです。 これは開発者がさまざまなソースからPDFを作成し、プログラム的にコンテンツを追加し、PDFレイアウトをカスタマイズすることを可能にします。 このセクションでは、SortedListデータからPDFレポートを作成するためにIronPDFを使用します。

SortedListデータからのPDFレポートの生成

IronPDFを使用するには、まずIronPDF NuGetパッケージをインストールします。

Install-Package IronPdf

例:SortedListからPDFへのデータのエクスポート

次の例は、SortedListからPDFテーブルにデータをエクスポートする方法を示します。

まず、SortedList を設定します:

SortedList<int, string> sortedList = new SortedList<int, string>
{
    { 1, "Apple" },
    { 2, "Banana" },
    { 3, "Cherry" }
};
SortedList<int, string> sortedList = new SortedList<int, string>
{
    { 1, "Apple" },
    { 2, "Banana" },
    { 3, "Cherry" }
};
Dim sortedList As New SortedList(Of Integer, String) From {
	{1, "Apple"},
	{2, "Banana"},
	{3, "Cherry"}
}
$vbLabelText   $csharpLabel

次に、IronPDFを使用してこのデータからPDFを生成します。

// Initialize a PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Build HTML string with table format
string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>";
foreach (var kvp in sortedList)
{
    html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>";
}
html += "</table>";

// Render HTML to PDF and save it
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
// Initialize a PDF renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

// Build HTML string with table format
string html = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>";
foreach (var kvp in sortedList)
{
    html += $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>";
}
html += "</table>";

// Render HTML to PDF and save it
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
' Initialize a PDF renderer
Dim renderer As New ChromePdfRenderer()

' Build HTML string with table format
Dim html As String = "<h1>Sorted List Data</h1><table border='1'><tr><th>Key</th><th>Value</th></tr>"
For Each kvp In sortedList
	html &= $"<tr><td>{kvp.Key}</td><td>{kvp.Value}</td></tr>"
Next kvp
html &= "</table>"

' Render HTML to PDF and save it
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("sortedList.pdf")
$vbLabelText   $csharpLabel

C# ソート済みリスト(開発者向けの作動方法):図3

このコードはSortedListデータからHTMLテーブルを作成し、IronPDFを使用してPDFに変換します。

高度な機能

  • PDF レイアウトのカスタマイズ: IronPDFでは、レイアウト、フォント、色などの CSS スタイルを設定できます。 *ヘッダーとフッター: IronPDF は、ページ番号やロゴを含めることができるヘッダーとフッターをサポートしています。

概要とベストプラクティス

  • SortedList の概要: SortedList は並べ替えられたキーと値のコレクションであり、特定のキーによってデータにアクセスし、並べ替えられた状態を維持する必要があるシナリオに最適です。 *エクスポートにIronPDFを使用する: IronPDF は、カスタム レイアウトとスタイルをサポートし、SortedList データを PDF にエクスポートするための便利なライブラリです。

結論

この記事では、C# の SortedList クラスを探索しました。これは、キーと値のデータ コレクションをソートして管理するための強力なツールです。 SortedList は、秩序とキーによる効率的なアクセスが重要なシナリオで特に役立ちます。 作成、追加、削除から IronPDF を統合して PDF としてエクスポートすることまで、SortedList を実際のアプリケーションで使用するための実用的な手順とベスト プラクティスを取り上げました。

さらに、IronPDF を使用して SortedList から指定された値を PDF 形式にエクスポートするタスクを簡素化し、プロフェッショナルで整理されたレポートを簡単に作成できる方法を紹介しました。 IronPDFの汎用性は、カスタマイズ可能なヘッダー、フッター、およびCSSスタイリングを含み、C#アプリケーションから直接PDFを生成するための優れた選択肢です。

IronPDFを試してみたい場合、無料トライアルを提供しており、コミットメントなしで完全な機能を探索することができます。 このトライアルにより、PDF生成、カスタマイズオプション、および既存のプロジェクトへの統合をテストして、ニーズを満たすことを確認できます。 SortedList と IronPDF を組み合わせることで、開発者は C# アプリケーションでソートされたデータを管理および報告するための堅牢で効率的なソリューションを得ることができます。

よくある質問

C# SortedList とは何か、そしてそれはどのように機能しますか?

C# SortedList はキーと値のペアのコレクションであり、キーを自動的にソートします。それは System.Collections.Generic 名前空間の一部であり、ソートされたデータアクセスが必要なシナリオで役立ちます。SortedList は配列とハッシュテーブルの間のハイブリッド構造を使用して順序を維持し、効率的なキーによるアクセスを提供します。

C# で SortedList をどのように作成できますか?

C# で SortedList を作成するには、デフォルトのコンストラクタを使用するか、カスタムソート用の IComparer を渡します。SortedList を作成する例としては、SortedList sortedList = new SortedList(); があります。

C# の Dictionary よりも SortedList を使用する利点は何ですか?

SortedList を Dictionary よりも使用する主な利点は、SortedList がキーを自動的にソートすることです。これは、ソートされたデータが必要で、主にキーによってアクセスする場合に有益です。これは特に読み取りが多いシナリオで有用です。

C# SortedList にアイテムを追加するにはどうすればよいですか?

アイテムは Add メソッドを使用して C# SortedList に追加できます。このメソッドは、アイテムがキーでソートされた状態を維持し、SortedList の順序を維持することを保証します。

SortedList はデータを PDF としてエクスポートするのに使用できますか?

はい、IronPDF を使用して SortedList データから PDF レポートを生成できます。これにより、開発者はソートされたキーと値のデータコレクションから PDF ドキュメントを作成することができ、C# アプリケーションとの IronPDF の統合機能を示しています。

C# SortedList の一般的なアプリケーションは何ですか?

C# SortedList の一般的なアプリケーションには、学生の名簿番号順の名前の保存やソートされたトランザクションログの維持が含まれます。これは、ソートされた順序でデータにアクセスする必要があるアプリケーションで特に有用です。

SortedList の挿入および削除操作においてどのようなパフォーマンスを発揮しますか?

SortedList は、特に大規模なデータサイズの場合、Dictionary よりも挿入および削除操作が遅くなる可能性があります。これは、そのハイブリッド構造が効率的なルックアップとソートされた順序の維持を優先するためです。

C# SortedList のデフォルトのキーソート順序は何ですか?

C# SortedList のデフォルトのソート順序は昇順です。IComparable インターフェースを使用して、カスタム IComparer が提供されない限りキーを自動的にソートします。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(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テクノロジーにおけるイノベーションの推進に注力しています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね