如何在Powershell中创建一个空数组?

Shu*_*eng 4 arrays powershell

我想在Powershell中创建一个空数组,以保存值的"元组"(数组是不可变的).

所以我试着这样的:

类型$arrObject[].我已经阅读+= @(1,2)过将给定元素(即@(1,2))附加到$arr(实际创建一个新数组).但是,在这种情况下,似乎连接数组,为什么?

$arr = @()
$arr += @(1,2)
$arr.Length // 2 (not 1)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它似乎$arr包含两个数组@(1,2),@(3,4),这是我想要的:

$arr = @()
$arr += @(1,2),@(3,4)
$arr.Length // 2
Run Code Online (Sandbox Code Playgroud)

如何初始化一个空的数组数组,这样我可以一次添加一个子数组,比如$arr += @(1,2)

lit*_*lit 9

Bruce Payette 的回答会奏效。语法对我来说似乎有点尴尬,但它确实有效。至少它不是 Perl。

另一种方法是使用ArrayList. 对我来说,这种语法更清晰,更容易在六个月内被其他开发人员(或我自己)理解。

[System.Collections.ArrayList]$al = @()

$al.Add(@(1,2))
$al.Add(@(3,4))

foreach ($e in $al) {
    $e
    $e.GetType()
}
Run Code Online (Sandbox Code Playgroud)


Bru*_*tte 5

+运算符连接数组.要将数组添加为单个元素,请在元素前添加逗号以添加逗号.有点像@() + , (1,2) + , (3, 4).