今回は連想配列▼(ハッシュテーブル)について解説しよう。キーとそれに対応する値を一組の「ペア」として管理する配列だ。例えば郵便番号と市町村名、製品型番と製品名といった値同士の組み合わせを表現するのに適している。
さっそく連想配列を作成しよう。一般的な配列と同じように、@で始めて{}でデータ群を囲む。違いは区切りがカンマ(,)ではなく、セミコロン(;)である点だ。
$htable = @{Japan = "Tokyo"; USA =
"Washington D.C."; Egypt = "Cairo"}
次にキーと値のペアを追加しよう。次の二つの方法がある。
$htable["Australia"] = "Canberra"
$htable.Add("Jordan","Amman")
$htableに格納されたキーと値の組み合わせを一覧するには、「$htable」と入力すればよい(図1)。
格納されている値は基本的には入力した順番と関係なくバラバラに並ぶ。そのままでは値をチェックするときに不便なので、キーまたは値の昇順で並べ替えよう。「GetEnumerator」メソッドを使用▼して、
$htable.GetEnumerator() |
Sort Name
とする(図2)。Nameのかわりに「Value」を指定すれば、値で並べ替えられる。
特定のキーに対応する値を取り出すにはプロパティとしてキーを指定する。例えば
$htable.Japan
で「Tokyo」という結果を得られる。キーには変数も使える。
指定したキーや値が連想配列に含まれているかどうかを検証するには、それぞれ「ContainsKey」「ContainsValue」といったメソッドを使う(図3)。例えば
$htable.ContainsKey("Japan")
と入力すれば「True」という結果が戻ってくる。存在しない場合は「False」が戻る。
既に存在する値を変更するには
$htable["Japan"] = "Osaka"
とする。これはキー追加と同じ書式で、指定したキーが存在していなければ追加になり、存在していれば置き換えになる。
既存の値を削除するには、「Remove」メソッドでキーを指定する。
$htable.Remove("Jordan")
キーから値を連想するイメージなので「連想配列」と呼ばれる。
$htable | Sort Nameとしても並びは変わらない。