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メソッドを使うことをおすすめします。