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 }