Если вы хотите повернуть массив на месте, это более эффективно, чем ручная итерация и смещение элементов в Powershell (.NET Array.Copy
аналогична Java System.arraycopy
):
New-Variable -Name first -Value $arr[0] -Scope Private
[array]::Copy($arr, 1, $arr, 0, $arr.Length - 1)
$arr[$arr.Length - 1] = $Private:first
Если желательно копирование (10 элементов должны быть в порядке):
$arr = $arr[1 .. ($arr.Length - 1) + 0]
Powershell позволяет комбинировать два или более диапазонов с помощью оператора +
.Особенно, если вы хотите, чтобы массив был неизменным, это должно быть наиболее оптимальным решением.