PowerShell: 配列の先頭・末尾に要素を追加する

PowerShellで配列の先頭や末尾に要素を追加する方法を説明します。
PowerShellでは要素を追加するpushなどのメソッドや関数は用意されていませんが、 「+」演算子や「+=」演算子を使用することで要素を追加できます。
まずは配列の末尾に追加する方法を説明し、次に先頭に追加する方法を解説します。

配列の末尾に要素を追加する

末尾に要素を追加する場合は「+」演算子、 又は「+=」演算子を使用します。

次のコードでは「+」演算子で末尾に新たな要素"d"を追加しています。

$arr = "a" , "b" , "c"

$arr = $arr + "d"

Write-Host $arr  # a b c d

$arr.GetType() # System.Array

「+=」演算子を使っても同じ結果を得られます。

$arr = "a" , "b" , "c"

$arr += "d"

Write-Host $arr  # a b c d

$arr.GetType() # System.Array

配列の先頭に要素を追加する

先頭に追加する場合は「+」演算子を使用しますが、 単純に「値 + 配列」と記述してもうまくいきません。 「配列 + 配列」として結合する必要があります。
そのため、追加したい値を「@()」を使って配列にします

次のコードでは文字列"d"を配列の先頭に追加しています。 その際に@("d")と記述することで「配列 + 配列」の形にしています。

$arr = "a" , "b" , "c"

$arr = @("d") + $arr

Write-Host $arr  # d a b c

$arr.GetType() # System.Array

上のコードで仮に「"d" + $arr」のように「文字列 + 配列」 で記述した場合にどうなるかを試してみます。

$arr = "a" , "b" , "c"

$arr = "d" + $arr

$arr  # da b c

$arr.GetType() # String

この場合、$arrは文字列「"da b c"」となってしまいます。 配列の結合ではなく文字列の結合とみなされます。 ですから先頭に要素を追加する場合は@()で配列にしてから 結合してください。

PowerShell