相关疑难解决方法(0)

为什么PowerShell会自动展平数组?

我写了一些pwsh代码

"a:b;c:d;e:f".Split(";") | ForEach-Object { $_.Split(":") }
# => @(a, b, c, d, e, f)
Run Code Online (Sandbox Code Playgroud)

但是我想要这个

// in javascript
"a:b;c:d;e:f".split(";").map(str => str.split(":"))
[ [ 'a', 'b' ], [ 'c', 'd' ], [ 'e', 'f' ] ]
Run Code Online (Sandbox Code Playgroud)

嵌套数组

@(
    @(a, b),
    @(c, d),
    @(e, f),
)
Run Code Online (Sandbox Code Playgroud)

为什么?那我该怎么办

arrays powershell pipeline jagged-arrays

4
推荐指数
1
解决办法
92
查看次数

为什么要避免使用递增赋值运算符 (+=) 来创建集合

StackOverflow 站点的问答中+=经常使用递增赋值运算符 ( )[PowerShell]来构造集合对象,例如:

$Collection = @()
1..$Size | ForEach-Object {
    $Collection += [PSCustomObject]@{Index = $_; Name = "Name$_"}
}
Run Code Online (Sandbox Code Playgroud)

然而,它似乎是一种非常低效的操作。

一般情况下,+=在 PowerShell 中构建对象集合时应该避免使用递增赋值运算符 ( ) 是否可以?

collections powershell variable-assignment operator-keyword

4
推荐指数
1
解决办法
529
查看次数