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

C#のキーベースのコレクション「SortedList」とは?基本から実装例まで解説

C#におけるキーベースのコレクション「SortedList」とは

C#には、キー(Key)を基準にデータを管理するためのコレクションクラスが用意されており、その代表格が SortedList です。

SortedList<TKey, TValue> は、キーと値(Value)のペアで構成されるコレクションで、追加された要素はキーの順序に従って自動的にソートされます。さらに、各要素へは「キー」だけでなく「インデックス(番号)」の両方からアクセスできる点が大きな特徴です。

SortedListへの要素の追加

Add() メソッドを使うことで、キーと値のペアをSortedListに簡単に追加できます。記述方法は以下の通りです。

s.Add("Sub1", "Physics");
s.Add("Sub2", "Chemistry");
s.Add("Sub3", "Biology");
s.Add("Sub4", "Java");

実装例:SortedListのキーと値を表示する

次のコードでは、SortedListを作成して教科データを登録した後、Capacity プロパティでコレクションの容量を取得し、Keys プロパティでキーのコレクションを取り出して、foreachループですべてのキーと値を出力しています。

using System;
using System.Collections;

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

            s.Add("Sub1", "Economics");
            s.Add("Sub2", "Accountancy");
            s.Add("Sub3", "Business Studies");
            s.Add("Sub4", "English");

            Console.WriteLine("Capacity = " + s.Capacity);

            // キーのコレクションを取得
            ICollection key = s.Keys;

            foreach (string k in key) {
                Console.WriteLine(k + ": " + s[k]);
            }
        }
    }
}

出力結果

Capacity = 16
Sub1: Economics
Sub2: Accountancy
Sub3: Business Studies
Sub4: English

ポイントまとめ

  • SortedListはキーと値のペアを保持し、常にキー順でソートされた状態を維持します。
  • 要素へのアクセスは、キー指定でもインデックス指定でも可能です。
  • 既定の容量(Capacity)は16で設定されており、要素数が増えると自動的に拡張されます。

このようにSortedListを活用すれば、ソート済みの辞書型データを効率的に扱うことができ、検索や一覧表示が必要な場面で非常に便利です。

  1. CSSの疑似クラスとは?主要な種類と使い方をわかりやすく解説

    CSSの疑似クラス(pseudo-class)は、セレクターに対して特別な効果や状態を追加するための仕組みです。JavaScriptなどのスクリプトを使わなくても、マウスオーバーやクリックといったユーザーの操作に応じたスタイルを手軽に実装できるのが大きな特徴です。 よく使われる主な疑似クラス一覧 以下は、CSSで最もよく使用される代表的な疑似クラスとその役割をまとめた表です。 値 説明 :link 未訪問のリンクに特別なスタイルを適用します。 :visited

  2. C言語の高レベルI/O関数とは?種類・構文・使い方を実例付きで徹底解説

    I/Oとは、C言語における入力(Input)・出力(Output)関数のことを指します。ファイル操作を行う際には、大きく分けて「高レベルI/O」と「低レベルI/O」の2種類があり、それぞれ特徴や用途が異なります。本記事では、高レベルI/O関数の種類や構文、具体的な使い方をサンプルプログラムとともに詳しく解説します。 高レベルI/Oと低レベルI/Oの違い 高レベルI/O 人間にとって理解しやすい形式で入出力を行う。 最大の利点は移植性(ポータビリティ)の高さ。OSや環境に依存せずに動作する。 低レベルI/O コンピュータ(ハードウェア)にとって理解しやすい形式で入出力を行う。 利点は実行時