PowerShell: 連想配列を結合(連結)する
PowerShellで連想配列(ハッシュテーブル)を結合する場合は、 +演算子や+=演算子を使用します。 +演算子は単純な結合、+=演算子は結合+代入です。 それぞれの方法を解説していきます。
+演算子での連想配列の結合
+演算子では、+演算子の左辺の連想配列と右辺の連想配列を結合し、 新たな連想配列を作成します。「連想配列+連想配列」の形式です。 注意点として、キーが重複しているとエラーになります。
次のコードでは、$h1と$h2の2つの連想配列を結合して、 新たな連想配列$h3を作成しています。
$h1 = @{ a = 100 b = 200 } $h2 = @{c = 300; d = 400} $h3 = $h1 + $h2 $h3 # 実行結果 Name Value ---- ----- b 200 a 100 d 400 c 300
次のコードのように連想配列リテラルで記述しても構いません。
$h3 = @{a = 100} + @{c = 300} $h3 # 実行結果 Name Value ---- ----- a 100 c 300
キーの重複はエラー
次のコードでは連想配列のキー"a"が重複しているため、 エラーが発生します。
$h1 = @{a = 100; b = 200} $h2 = @{c = 300; a = 400} $h3 = $h1 + $h2 $h3 # 実行結果(エラーメッセージ) Line | 6 | $h3 = $h1 + $h2 | ~~~~~~~~~~~~~~~ | Item has already been added. Key in dictionary: 'a' Key being added: 'a'
+=演算子での連想配列の結合+代入
+=演算子は左辺と右辺の連想配列を結合し、
結果を左辺の連想配列に代入します。
「$h1 += $h2」は「$h1 = $h1 + $h2」と同じ意味です。
$h1 = @{a = 100; b = 200} $h2 = @{c = 300; d = 400} $h1 += $h2 $h1 # 実行結果 Name Value ---- ----- b 200 a 100 d 400 c 300