コレクションを利用しよう (4/6)
作成:2014-03-08 09:58
更新:2014-03-08 09:58
更新:2014-03-08 09:58
■ジェネリック対応の「Dictionary」
ArrayListにジェネリック対応のListがあるように、このHashtableにもジェネリック対応のクラスが用意されています。それは、System.Collections.Genericパッケージの「Dictionary」というクラスです。
このDictionaryは、Hashtableのジェネリック対応版です。インスタンス作成の際にジェネリックを指定しておくことで、特定のクラスのインスタンスしか扱えないインスタンスを作ることができます。では、以下にまとめておきましょう。
●インスタンスの作成
それ以外の使い方は基本的にHashtableと同じです。AddやRemoveで値の追加や削除を行ったり、[ インデックス ]と指定して値を読み書きする、という形ですね。
下のリスト欄に、先のHastableのサンプルをDictionaryに書き換えたものを挙げておきます。基本的にはHashtableがわかればそのまま理解できるでしょう。
このDictionaryは、Hashtableのジェネリック対応版です。インスタンス作成の際にジェネリックを指定しておくことで、特定のクラスのインスタンスしか扱えないインスタンスを作ることができます。では、以下にまとめておきましょう。
●インスタンスの作成
Dictionary < クラス名 , クラス名> 変数 = new Dictionary < クラス名 , クラス名 >();Dictionaryの後にジェネリックでクラスを指定します。注意すべきは、「指定するクラスは2つ必要」ということでしょう。Dictionaryはキーと値にそれぞれオブジェクトを指定しますから、< キーのクラス名 , 値のクラス名 > という形でそれぞれの使用クラスを指定する必要があります。
それ以外の使い方は基本的にHashtableと同じです。AddやRemoveで値の追加や削除を行ったり、[ インデックス ]と指定して値を読み書きする、という形ですね。
下のリスト欄に、先のHastableのサンプルをDictionaryに書き換えたものを挙げておきます。基本的にはHashtableがわかればそのまま理解できるでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
using System; using System.Collections.Generic; namespace MyCLIApp { class Program { public static void Main(string[] args) { Dictionary<string,string> dict = new Dictionary<string,string>(); dict.Add("taro","taro@yamada.com"); dict.Add("hanako","hanako@flower.com"); dict.Add("tuyano","tuyano@syoda.com"); dict["tuyano"] = "syoda@tuyao.com"; Console.WriteLine(dict["tuyano"]); Console.WriteLine(dict["hanako"]); Console.ReadKey(true); } } }
※関連コンテンツ