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

Nes*_*tor 18 powershell

Powershell代码:

$list += "aa"
Run Code Online (Sandbox Code Playgroud)

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

$tmp = ,"aa";
$tmp += $list
$list = $tmp
Run Code Online (Sandbox Code Playgroud)

nit*_*ins 24

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

$list = ,"aa" + $list
Run Code Online (Sandbox Code Playgroud)

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

  • 从技术上讲,这结合了两个数组。该数组的大小是固定的,因此不可能进行纯前置。 (2认同)

Kei*_*ill 13

在PowerShell中使用+=+on数组每次使用时都会复制数组.除非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
Run Code Online (Sandbox Code Playgroud)

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


Sha*_*tin 11

这将两个数组合二为一。

$list = @("aa") + $list
Run Code Online (Sandbox Code Playgroud)

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

  • 我喜欢这个答案,它具有可读性,其意图非常明确! (2认同)