.NET ヘルプ

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

公開済み 2024年12月15日
共有:

C# SortedListの紹介

SortedListとは何ですか?

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

次の文章を日本語に翻訳してください:

When it comes to working with

作業する際にはソート済みリストPDF生成タスクと並行して、IronPDFはこのクラスと完璧に統合され、PDF生成に対するさらに多くの制御を提供します。

主な機能と使用例

  • キー-バリュー ペア ストレージ: ソートされたリストは辞書のようにデータをキー-バリューのペアとして保存します。
  • 自動ソート: SortedListは、関連する値をキーによって保持し、デフォルトでは昇順でソートします。
  • 効率的なデータ取得: キーによる関連する値の迅速な取得により、ルックアップに適しています。
  • ユースケース: SortedListは、名前、日付、数値を順序付けて管理する必要があるアプリケーションに便利です。

SortedListの仕組み

データ構造の概要

パブリッククラスSortedListは、配列とハッシュテーブルの中間であり、アイテムをキーで整理します。 内部では、キー値を順序どおりに保つためにソートされた配列を使用しています。そのため、キーによる検索は効率的ですが、挿入や削除の操作は辞書よりも遅くなる可能性があります。

並べ替えの仕組み

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

利点と制限

  • 長所:

    • 高速キーアクセス: 高速Oを提供(ログ n)キーによるアクセス。
    • ソート順: データはキーで自動的にソートされるため、追加のソートは必要ありません。
  • 短所:

    • 挿入速度: 大量のデータがある場合、挿入においてDictionaryよりも遅い。
    • 非キー操作の効率の制限:データが主に特定のキー値によってアクセスされない場合に制限があります。

C# SortedListでの作業

SortedListの作成

C#でSortedListを作成するには、デフォルトコンストラクターを使用するか、カスタムソートが必要な場合はIComparerを渡すことができます。 SortedList はデフォルトで初期容量が16ですが、もしおおよそのサイズが事前に分かっている場合は、これを指定することでパフォーマンスを改善できます。

SortedList<int, string> sortedList = new SortedList<int, string>();
SortedList<int, string> sortedList = new SortedList<int, string>();
Dim sortedList As New SortedList(Of Integer, String)()
VB   C#

アイテムの追加

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")
VB   C#

要素のアクセスと修正

SortedListの要素にはキーを使用してアクセスします。 キーに関連付けられた指定された値を直接取得または変更できます。

// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
// Accessing a specific value by key
string value = sortedList[1];  // "Apple"
// Modifying a value
sortedList[1] = "Avocado";
' Accessing a specific value by key
Dim value As String = sortedList(1) ' "Apple"
' Modifying a value
sortedList(1) = "Avocado"
VB   C#

アイテムを削除

Remove メソッドを使用して指定されたキーを使用してアイテムを削除するか、RemoveAt を使用して指定されたインデックスで削除できます。 どちらのオプションも、SortedList 内の指定されたオブジェクトデータの制御された削除を可能にします。

sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3);       // Removes key 3
sortedList.RemoveAt(0);     // Removes item at a zero-based index 0
sortedList.Remove(3) ' Removes key 3
sortedList.RemoveAt(0) ' Removes item at a zero-based index 0
VB   C#

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
VB   C#

C# ソートされたリスト(開発者のための説明):図 1

ソートされたリストの実用例

  • 例 1: 注文が重要な場合の単純なキーと値の形式でデータを保存および取得する例として、出席番号による生徒の名前。
  • 例 2: より複雑なシナリオでのSortedListの使用、例えばソートされたトランザクションログやランキングスコアの表示。

    ベストプラクティス:

  • キーが主なアクセスポイントであり、整列された状態を維持する必要がある場合は、SortedListを使用します。
  • 頻繁に挿入する場合は、SortedDictionaryのような代替手段を検討して、より良いパフォーマンスを得られるようにしましょう。

パフォーマンスに関する考慮事項

SortedListとDictionaryおよびListの比較

  • SortedList と Dictionary: SortedList はソート機構のため、Dictionary より挿入が遅いです。
  • SortedList と List: List とは異なり、SortedList はキーによって要素にアクセスすることを目的としており、要素をソートされた順序で保持します。

    SortedListを使用するタイミング: データがソートされていて、主にキーによってアクセスされる必要がある場合に使用します。特に読み取りが多いシナリオで役立ちます。

IronPDFとの統合によるPDFエクスポート

IronPDFの紹介

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

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

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

IronPDFを使用し始めるには、IronPDFのNuGetパッケージをインストールします:

Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
VB   C#

例: 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"}
}
VB   C#

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

ChromePdfRenderer renderer = new ChromePdfRenderer();
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>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
ChromePdfRenderer renderer = new ChromePdfRenderer();
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>";
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("sortedList.pdf");
Dim renderer As New ChromePdfRenderer()
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>"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("sortedList.pdf")
VB   C#

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

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

高度な機能

  • PDFレイアウトのカスタマイズ: IronPDFは、レイアウト、フォント、色などのCSSスタイリングを可能にします。
  • ヘッダーとフッター: IronPDFは、ページ番号やロゴを含むヘッダーとフッターをサポートしています。

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

  • SortedList 概要: SortedListはソートされたキーと値のコレクションであり、特定のキーでデータにアクセスし、それをソートされたまま保つ必要があるシナリオに最適です。
  • IronPDFを使用したエクスポート: IronPDFは、SortedListデータをPDFにエクスポートするための便利なライブラリであり、カスタムレイアウトやスタイリングをサポートします。

結論

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

さらに、どのようにしてIronPDF指定された値をソート済みリストからPDF形式にエクスポートする作業を簡素化し、プロフェッショナルで整理されたレポートの簡単な作成を可能にします。 IronPDFの多様性、カスタマイズ可能なヘッダー、フッター、CSSスタイリングを含む機能により、C#アプリケーションから直接PDFを生成するための優れた選択肢となります。

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

< 以前
C# の Trim(開発者向けの機能と動作)
次へ >
C# 浮動小数点数(開発者向けの働き方)