将项添加到数组不起作用?

时间:2015-09-17 21:38:56

标签: powershell

以下代码

$a = 1..5 | % {
    $l = $_, ($_+1), ($_+2)
    $r = $_ * 100
    $l, $r
    #$l.Add($r) # Error
}
$a | % { "[$_]" }

返回

[1 2 3]
[100]
[2 3 4]
[200]
[3 4 5]
[300]
[4 5 6]
[400]
[5 6 7]
[500]

但是,我预计会有以下结果?

[1 2 3 100]
[2 3 4 200]
[3 4 5 300]
[4 5 6 400]
[5 6 7 500]

2 个答案:

答案 0 :(得分:1)

,不附加,但会创建一个由两个项组成的新数组。

使用+附加一个项目,然后在其前面添加,,以避免管道扁平化数组:

$a = 1..5 | % {
    $l = $_, ($_+1), ($_+2)
    $r = $_ * 100
    ,($l + $r)
}
$a | % { "[$_]" }

答案 1 :(得分:0)

我想出了办法,但不知道它为什么会起作用。

$a = 1..5 | % {
    $l = $_, ($_+1), ($_+2)
    $r = $_ * 100
    #$($l, $r)
    $l += $r
    ,@($l)
}
$a | % { "[$_]" }