假设变量$ 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循环来完成任务,但我在想是否有更“优雅”的方式来做这个...可能是一个单行程?
提前致谢。
答案 0 :(得分:17)
您可以使用Range运算符对数组进行切片:
$b = $a[1..2]
答案 1 :(得分:3)
值得注意的是Range运算符支持动态值 - 当您想要动态计算范围时非常有用,例如:
$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