15

假设变量 $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 循环来完成这项任务,但我在想是否有更“优雅”的方式来做到这一点......可能是单线?

提前致谢。

4

2 回答 2

28

您可以使用 Range 运算符对数组进行切片:

$b = $a[1..2]
于 2012-09-18T14:19:27.120 回答
4

值得注意的是 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
于 2016-08-11T15:53:28.210 回答