PowerShell: 配列の先頭・末尾要素を削除する
PowerShellで配列の先頭や末尾の要素を削除する方法を説明します。 PowerShellでは要素を削除するpop等のメソッドや関数は用意されていません。 ですが配列のスライス(切り出し・範囲取得)機能を使えば実現できます。 (参考記事:配列のスライス)
まずは配列の末尾の要素を削除する方法、 次に先頭の要素を削除する方法を解説します。
配列の末尾の要素を削除する
末尾の要素を削除するには、 スライス機能を使って「先頭」から「末尾の1つ前」 までのインデックスを指定します。 そうすることで末尾を削除するのと同じ効果を得られます。
次のコードは要素数が5の配列を用意し、 末尾の要素を削除しています。 「$arr[0..$n]」の部分で「先頭」から 「末尾の1つ前」までをスライスしています。
$arr = "a" , "b" , "c", "d", "e" $n = $arr.Length - 2 # 末尾要素を削除 $arr = $arr[0..$n] Write-Host $arr # a b c d
変数$nを使用せずに直接次のように指定しても結果は同じです。
# 末尾要素を削除 $arr = $arr[0..($arr.Length - 2)]
配列の先頭の要素を削除する
先頭の要素を削除する場合も同じくスライス機能を使います。 今度は「2番目」から「末尾」までのインデックスを指定します。 そうすることで先頭を削除するのと同じ効果が得られます。
次のコードでは配列の先頭要素"a"を削除しています。 「$arr[1..($arr.Length-1)]」の部分で2番目の要素から 末尾までを取得しています。
$arr = "a" , "b" , "c", "d", "e" $arr = $arr[1..($arr.Length-1)] Write-Host $arr # b c d e
(まとめ記事: PowerShell 配列)