PowerShellコマンドレット虎の巻
HOME > PowerShell構文 > ハッシュテーブル

ハッシュテーブル

PowerShellのハッシュテーブルの使い方です。

解説

ハッシュテーブル(hashtable)は、キーと値のペアを格納するデータ構造です。
以下のような特徴があります。

  • 順序は保持されません(ただし[ordered]を使うと順序を保持できます)。
  • キーと値には任意の.NETオブジェクト型を使用できます。
  • データの検索と取得に効率的です。

構文

ハッシュテーブルは、@{} を使って作成し、キーと値のペアを キー = 値 の形式で指定します。

(構文)
@{ <キー1> = <値1> <キー2> = <値2> <キー3> = <値3> ... }

ハッシュテーブルのメソッド

PowerShellのハッシュテーブルで使用できるメソッドには以下のようなものがあります。

【主要メソッド】
メソッド説明
.Add()新しいキーと値のペアを追加する
(例)$hash.Add("キー", "値")
.Remove()指定したキーを削除する
(例)$hash.Remove("キー")
.ContainsKey()指定したキーが含まれるか判定する
(例)$hash.ContainsKey("キー")
.ContainsValue()指定した値が含まれるか判定する
(例)$hash.ContainsValue("値")
.Clear()すべての要素を削除する
(例)$hash.Clear()
.Clone()コピーを作成する(shallow copy)
(例)$newHash = $hash.Clone()
.CopyTo()ハッシュテーブルの要素を配列にコピーする
(例)$hash.CopyTo($arr2, 0)
.Keysすべてのキーを取得する
(例)$hash.Keys
.Valuesすべての値を取得する
(例)$hash.Values

サンプル(ハッシュテーブルの生成)

ハッシュテーブルを生成する

$hash = @{ Key1 = "Value1" Key2 = "Value2" Key3 = "Value3" }

空のハッシュテーブルを作成する

$emptyHash = @{}

サンプル(値の追加と更新)

値の追加と更新

$hash["Key4"] = "Value4" $hash.Key5 = "Value5"

サンプル(値の取得)

値を取得する

$value = $hash["Key1"] # または $value = $hash.Key1

すべてのキーと値を列挙する

foreach ($key in $hash.Keys) { $value = $hash[$key] Write-Host "$key : $value" }

すべての値を取得する

$hashtable.Values

サンプル(キーの取得)

すべてのキーを取得する

$hashtable.Keys

サンプル(要素の削除)

要素を削除する

$hash.Remove("Key1")

サンプル(その他)

要素数を取得する

$count = $hash.Count

キーの存在確認

if ($hash.ContainsKey("Key1")) { Write-Host "Key1 exists" }

値の存在確認

if ($hash.ContainsValue("Value1")) { Write-Host "Value1 exists" }

備考

  • ハッシュテーブルは順序を保持しません。順序を保持したい場合は [ordered]キーワードを使用すれば可能です。
    $orderedHash = [ordered]@{ z=1; c=3; x=2; b=4 }

関連項目