Powershell代码:
$list += "aa"
将元素“aa”附加到list $列表中。有没有办法在前置元素?这是我的解决方案,但必须有一种方法可以在一行中完成。
$tmp = ,"aa";
$tmp += $list
$list = $tmp
答案 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' + $_}
显然,对于一个巨大的阵列来说,这将是相对缓慢的。