PowerShell: 配列のスライス(切り出し)

PowerShellの配列でスライスを行う方法を解説します。 スライスは切り出しや範囲取得とも言われ、 部分的に要素を取り出すことです。 PowerShellでスライスを行う場合、 配列のインデックスに要素の範囲を示す配列を指定します。

次のコードではインデックスをカンマで区切ることで、 2番目、4番目、6番目の要素を取り出します。

$arr = 10..20

# 特定の要素
Write-Host $arr[1, 3, 5]  # 11, 13, 15

要素の順番を入れ替えて切り出すこともできます。

$arr = 10..20

# 順序を入れ替えて取得
Write-Host $arr[1, 4, 2, 8]  # 11 14 12 18

連続した要素を取得する場合は「..」が使えます。 次のコードでは2番目から4番目までを切り出しています。

$arr = 10..20

# 連続した要素
Write-Host $arr[1..3]  # 11 12 13

+演算子を使って部分取得を結合することもできます。

$arr = 10..20

# +演算子を使う
Write-Host $arr[1..3 + 7]  # 11 12 13 17

次のコードでは連続して切り出した要素同士を+演算子で 結合しています。

$arr = 10..20

# +演算子で連続した要素同士を結合
Write-Host $arr[1..3 + 6..8]  # 11 12 13 16 17 18

マイナスの数値を使うことで末尾から取り出すこともできます。 「-1」を指定した場合は末尾要素を取り出します。

# 末尾から
$arr = 10..20

Write-Host $arr[-1]  # 20

このようにPowerShellでは いろいろな方法で配列のスライス(切り出し)を行うことができます。

スライス機能を使って配列の先頭・末尾要素を削除することもできます。
(参考記事: 配列の先頭・末尾要素を削除する

PowerShell