libro
www.tuyano.com
初心者のためのC#プログラミング入門

コレクションを利用しよう (3/6)

作成:2014-03-08 09:53
更新:2014-03-08 09:53

■キーで値を保管する「Hashtable」

ArrayList/Listは、基本的に配列と同じような仕組みでオブジェクトを管理しています。追加するとインデックス番号を割り振り、この番号によって順番にオブジェクトを取り出したりできました。

が、コレクションの中には、インデックス番号を使わずにオブジェクトを管理するものもあります。それが「Hashtable」です。これは一般に「連想配列」とか「ハッシュ」とかいわれるものです。

Hashtableは、「キー」と呼ばれるものを使って値を保管します。これは、保管する値に付けられたラベルのようなものと考えるとよいでしょう。値を取り出すときは、このキーを指定して取り出します。


●インスタンスの作成
new Hashtable();
new Hashtable(《Hashtable》);
インスタンスの作成は、ただnewするだけでOKです。また、既にあるHashtableの内容をそのまま引き継いでインスタンスを作ることもできます。


●値の追加
《Hashtable》.Add( キー , 値 );
値を追加するためのものです。引数には割り当てるキーと、保管する値を指定します。キーは、どんなオブジェクトでも使えますが、まぁ一般的にはstringで名前をつけることが多いでしょう。


●値の削除
《Hashtable》.Remove( キー );
Hashtableにある値を取り除くものです。引数にはキーを指定します。これにより、そのキーに保管されている値が取り除かれます。保管してあるオブジェクトそのものが消去されるわけではないので注意してください。


●値のやり取り
《Hashtable》[ キー ] = 値;
Object 変数 = 《Hashtable》[ キー ];
Hashtableも、ArrayListと同様に配列と同じ感覚で値を読み書きすることができます。添字の[]部分にキーを指定することで、そのキーに保管されている値を取り出したり別のものに変更したりできます。ただし、まだ用意されていないキーを指定して値を変更しようとするとエラーになります。新たに追加するときはAddを使うようにしてください。


――では、簡単な利用例を下に挙げておきましょう。Hashtableを作成し、その値を読み書きするサンプルです。インデックス番号の代わりにキーを使う、ということさえわかれば、使い方はそれほど難しくはありません。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;
using System.Collections;

namespace MyCLIApp
{
    class Program
    {
        public static void Main(string[] args)
        {
            Hashtable table = new Hashtable();
            table.Add("taro","taro@yamada.com");
            table.Add("hanako","hanako@flower.com");
            table.Add("tuyano","tuyano@syoda.com");
            table["tuyano"] = "syoda@tuyao.com";
            Console.WriteLine(table["tuyano"]);
            Console.WriteLine(table["hanako"]);
            Console.ReadKey(true);
        }
    }
}

※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る