PowerShell連想配列

PowerShell ハッシュの宣言

PowerShellにおけるハッシュは「.NET Framework」の「System.Collections.Hashtable」クラスのインスタンスです。

ハッシュの宣言は「@{ }」で囲み、要素を「;」で区切ります。


# ハッシュの宣言
$hash_table = @{one = 1; two = 2; three = 3}

# 結果として2が出力されます
$hash_table["two"]

PowerShell ハッシュ操作

ハッシュへ要素を追加する

要素を追加するには「Add」を用います。


$hash_table.Add("four", 4)

要素の追加にはAddを省略した記述も可能ですが、判りにくいので多用は控えるべきです。


$hash_table.five = 5

ハッシュの要素を削除する

要素を削除するには「Remove」を用います。


$hash_table.Remove("three")

ハッシュの要素を代入(変更)する

ハッシュの要素に対して代入を行う場合には、以下の記述を用います。


$hash_table["one"] = 10

または、「ハッシュ変数.キー」という記述に値を代入することも可能です。


$hash_table.one = 10

PowerShell ハッシュの参照

ハッシュの要素参照

ハッシュテーブルに含まれるキーを全て参照します。


# ハッシュのキーの取得
$keys = $hash_table.Keys

ハッシュテーブルに含まれる値を全て参照します。


# ハッシュの値の取得
$values = $hash_table.Values 

ハッシュテーブルに含まれる要素を順に参照する場合、「foreach」で要素をひとつずつ取り出していきます。


# ハッシュの要素を列挙
foreach ($key in $hash_table.Keys) {
    $key + ":" + $hash_table[$key]
}

ハッシュ要素の存在確認

指定したハッシュキーまたは値が存在していればTrue、なければFalseを返します。


$hash_table.Contains("three")

指定したキーに対する値が存在していればTrue、なければFalseを返します。


$hash_table.ContainsKey("four")

指定した値に対するキーが存在していればTrue、なければFalseを返します。


$hash_table.ContainsValue(5)

関連ページ