C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のSortedListクラスとは?特徴と基本的な使い方を解説

SortedListクラスとは

C#のSortedListクラスは、配列とハッシュテーブルを組み合わせたコレクションです。キーと値のペアからなるリストを保持しており、各要素には「キー」または「インデックス」のどちらからでもアクセスできます。

インデックスを使ってアクセスすればArrayListのように振る舞い、キーを使ってアクセスすればHashtableのように振る舞います。最大の特徴は、コレクション内の項目が常にキーの値に基づいて自動的にソートされるという点です。また、キーは重複できず、各キーには1つの値のみが対応します。

例:SortedListに要素を追加する

Add()メソッドを使うと、キーと値のペアをSortedListに追加できます。以下の例では、4つの科目データを追加しています。

using System;
using System.Collections;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         SortedList s = new SortedList();

         s.Add("S1", "Maths");
         s.Add("S2", "Science");
         s.Add("S3", "English");
         s.Add("S4", "Economics");
      }
   }
}

例:SortedListのキー一覧を取得して表示する

Keysプロパティを使うと、SortedListに登録されているすべてのキーを取得できます。取得したキーのコレクションをforeachループで処理することで、ソートされた順序どおりにキーを表示できます。

using System;
using System.Collections;

namespace Demo {
   class Program {
      static void Main(string[] args) {
         SortedList sl = new SortedList();

         sl.Add("ST0", "One");
         sl.Add("ST1", "Two");
         sl.Add("ST2", "Three");
         sl.Add("ST3", "Four");
         sl.Add("ST4", "Five");
         sl.Add("ST5", "Six");
         sl.Add("ST6", "Seven");

         ICollection key = sl.Keys;

         foreach (string k in key) {
            Console.WriteLine(k);
         }
      }
   }
}

出力結果

ST0
ST1
ST2
ST3
ST4
ST5
ST6

まとめ

SortedListは、キーによる柔軟なアクセスと、常にソートされた順序を保つ特性を兼ね備えた便利なコレクションです。要素の追加にはAdd()メソッド、キーの一覧取得にはKeysプロパティを使用します。キー順での列挙が必要な場面では、ArrayListやHashtableの代わりにSortedListを活用すると効果的です。

  1. C#のArrayListクラスにおけるCapacityプロパティとは?使い方を解説

    ArrayListクラスのCapacityプロパティは、そのArrayListが格納できる要素の数を取得または設定するためのプロパティです。Capacity(容量)は、実際に格納されている要素数を表すCount(カウント)よりも常に大きいか等しい値になります。Capacityプロパティへのアクセスは以下のように記述します。arrList.Capacity容量の仕組みArrayListの既定の容量は4です。要素を追加していき、既定の容量を超えると、容量は自動的に2倍に拡張されます。例えば、5つの要素を追加した場合、容量は8に拡張されます。以降も同様に、容量を超えた時点で順次2倍ずつ拡張されていき

  2. JavaのJSeparatorクラスとは?重要性と基本的な使い方を解説

    JSeparatorクラスとはJSeparatorは、Swingで提供されるコンポーネント同士を視覚的に区切るためのクラスです。水平または垂直の区切り線、あるいは余白(空白スペース)として表示され、GUIの見やすさと整理されたレイアウトを実現します。JSeparatorクラスの主な役割は、レイアウト内のコンポーネント間に区切り線を描画して分離することです。これにより、関連する項目をグループ化し、ユーザーインターフェース全体の可読性を高めることができます。メニューやツールバーへの区切り線の追加メニューやツールバーにセパレータを追加する最も簡単な方法は、JMenu、JPopupMenu、JTool