PowerShell: 連想配列に要素(キー・値)を追加する Add
PowerShellの連想配列(ハッシュテーブル)に 要素(キーと値のペア)を追加する場合はAddメソッドを使用します。 Addメソッドの書式は次の通りです。
書式
連想配列.Add(キー, 値)
第1引数にキー、第2引数に値を指定することでキーと値のペアが 連想配列に追加されます。 すでに存在するキーを指定した場合はエラーになります。
次のコードはAddメソッドを使って新しい要素("c", 300)を追加しています。
$h = @{ a = 100 b = 200 } $h.Add("c", 300) $h # 実行結果 Name Value ---- ----- a 100 b 200 c 300
次のコードは、すでに存在するキー"b"を追加しようとした結果、 エラーが発生しています。
$h = @{ a = 100 b = 200 } $h.Add("b", 300) # 実行結果(エラーメッセージ) Line | 7 | $h.Add("b", 300) | ~~~~~~~~~~~~~~~~ | Exception calling "Add" with "2" argument(s): "Item has already been added. Key in | dictionary: 'b' Key being added: 'b'"
Add以外での追加方法
Addメソッド以外の方法でも連想配列の要素を追加できます。
連想配列の値の代入時に使う方法で、 キーの部分に新しいキーを指定するだけです。 下の3通りの方法があります。 (関連記事:連想配列の「要素の参照」と「値の代入」)
書式
連想配列.新しいキー = 値 連想配列[新しいキー] = 値 連想配列.Item(新しいキー) = 値
次のサンプルコードでは、 先程紹介した3通りの方法で要素を新たに追加しています。
$h = @{ a = 100 b = 200 } $h.c = 300 $h["d"] = 400 $h.Item("e") = 500 $h # 実行結果 Name Value ---- ----- a 100 b 200 c 300 d 400 e 500
ただし、 ここで紹介した3つの方法で追加するのはあまりおすすめしません。 一見しただけでは、 値の変更なのか新しい要素の追加なのかがわかりにくいからです。
さらにAddメソッドの場合、すでにあるキーを追加しようとすると エラーが発生して教えてくれますが、 上の3つの方法ではエラーとならずに「代入」になってしまいます。 これはバグの原因の一つとなります。
後々のコードの可読性・メンテナンス性を考えると、 連想配列の要素追加の場合はAddメソッドを使うことをおすすめします。