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 配列)