Извлечение диапазона массива в Powershell

предположим, что в переменной $a есть массив, который создается следующим образом,

$a  = ,@(1,2,3)
$a += ,@(4,5,6)
$a += ,@(7,8,9)
$a += ,@(10,11,12)

Я хочу извлечь часть массива, скажем $a[1] и $a[2], в другую переменную, скажем $b такую, что,

$b[0] = @(4,5,6)
$b[1] = @(7,8,9)

Я могу использовать простой цикл for для выполнения задачи, но я думаю, есть ли более "элегантный" способ сделать это... может быть один-лайнер?

спасибо заранее.

2 ответов


вы можете использовать оператор Range для среза массива:

$b = $a[1..2]

стоит отметить, что оператор диапазона поддерживает динамические значения-очень полезно, когда вы хотите работать ваш диапазон динамически, например:

$a = @(0,1,2,3,7)
$b = @(4,5,6)
$twotoseven = $a[($a.Length-($a.Length-2))..($a.Length-2)] + $b + $a[-1]

выход:

2 3 4 5 6 7