
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
Dim sortedList As New SortedList(Of Integer, String)()アイテムの追加
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 内の要素にアクセスします。 キーに直接関連する値を取得したり修正したりできます。
// 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"アイテムの削除
特定のキーを使用して Remove メソッドを使用したり、指定されたインデックスを使用して RemoveAt することでアイテムを削除します。 どちらも SortedList からのオブジェクトの制御された削除を許可します。
sortedList.Remove(3); // Removes the entry with key 3
sortedList.RemoveAt(0); // Removes the entry at the zero-based index 0sortedList.Remove(3) ' Removes the entry with key 3
sortedList.RemoveAt(0) ' Removes the entry at the zero-based index 0SortedListの反復
SortedList 上で foreach ループを使用して、キーと値の両方をソートされた順序で取得します。
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
SortedListを使用した実用例
***例 1:**学生名とロール番号など、順序が重要な単純なキーと値の形式でデータを保存および取得します。
- 例 2: ソートされたトランザクションログやランク付けされたスコアを表示するなどより複雑なシナリオで
SortedListを使用します。
ベストプラクティス:
- キーが主要なアクセスポイントであり、ソートされたままである必要がある場合は
SortedListを使用します。 - 頻繁な挿入を行う場合は、パフォーマンスを向上させるために
SortedDictionaryなどの代替を検討してください。
パフォーマンスの考慮事項
SortedListとDictionaryおよびListの比較
- SortedList と Dictionary: SortedList は、ソートのオーバーヘッドにより、Dictionary に比べて挿入速度が遅くなります。
- **SortedList と List:**リストとは異なり、SortedList はキーで要素にアクセスし、ソートされた順序を維持するように設計されています。
**SortedList を使用する場合:**並べ替えられたデータが必要で、主にキーでアクセスする場合、特に読み取りが多いシナリオで使用します。
PDFエクスポートへのIronPDFの統合
IronPDFの紹介

IronPDFは、C#でPDFファイルを生成し、修正するための強力なライブラリです。 これは開発者がさまざまなソースからPDFを作成し、プログラム的にコンテンツを追加し、PDFレイアウトをカスタマイズすることを可能にします。 このセクションでは、SortedListデータからPDFレポートを作成するためにIronPDFを使用します。
SortedListデータからのPDFレポートの生成
IronPDFを使用するには、まずIronPDF NuGetパッケージをインストールします。
例:SortedListからPDFへのデータのエクスポート
次の例は、SortedListからPDFテーブルにデータをエクスポートする方法を示します。
まず、SortedList を設定します:
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"}
}次に、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
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")
このコードは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# アプリケーションでソートされたデータを管理および報告するための堅牢で効率的なソリューションを得ることができます。

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。
関連する記事


