如何在Powershell中将元素添加到数组中?

时间:2010-02-04 17:00:54

标签: powershell

Powershell代码:

$list += "aa"

将元素“aa”附加到list $列表中。有没有办法在前置元素?这是我的解决方案,但必须有一种方法可以在一行中完成。

$tmp = ,"aa";
$tmp += $list
$list = $tmp

4 个答案:

答案 0 :(得分:22)

在上面的示例中,您应该能够:

$list = ,"aa" + $list

这将简单地将“aa”添加到列表中并使其成为第0个元素。获取$list[0]验证。

答案 1 :(得分:13)

在PowerShell中对数组使用+=+每次使用时都会复制数组。除非list / array非常大,否则这很好。在这种情况下,请考虑使用通用列表:

C:\> $list = new-object 'System.Collections.Generic.List[string]'
C:\> $list.Add('a')
C:\> $list.Add('b')
C:\> $list.Insert(0,'aa')
C:\> $list
aa
a
b

请注意,在此方案中,您需要使用“添加/插入”方法。如果您回到使用+=,它会将通用列表复制回object[]

答案 2 :(得分:2)

这将两个数组合并为一个。

{{1}}

在PowerShell数组中进行纯粹的前置是不可能的,因为PowerShell数组是固定长度的。将两个阵列合二为一是一种很好的方法。

答案 3 :(得分:0)

如果您碰巧想要对'Object'数组而不是'String'执行此操作,我发现以下内容非常有用:

$List = $List | foreach {'aa' + $_}

显然,对于一个巨大的阵列来说,这将是相对缓慢的。