【发布时间】:2019-06-10 01:11:39
【问题描述】:
我发现如果你在 PowerShell 中创建一个数组并这样做:
$myArray = @()
$myArray += 7
每次执行此语句时,它都会创建一个以 7 结尾的新数组,并返回新数组并删除旧数组!基本上,我们在大约 10,000 次迭代的循环中执行此操作,这非常慢!
如果我改用 ArrayList,通过调用 .Add(x),我们发现它要快得多。我的问题是哪个代码更快?
$myArrayList.Add(x)
或
$myArrayList += x
或者它们是一样的吗?因为我们现有的代码是+= x 格式。我们希望不必将所有代码更改为.Add(x) 格式。
【问题讨论】:
-
请注意,当您对其执行
+=时,您的ArrayList将转换为数组。 -
除非您将其定义为
[Collections.ArrayList]$myArray = @()(好吧,在那种情况下它可能会被转换两次,首先是Array,然后又是ArrayList)。 -
@MattBrowne 推荐了这个有关 PowerShell 性能的相关演示文稿,其中:youtu.be/Yp_m5T_kyJU?t=1227(直接链接到相关部分,但整个演示文稿很有趣)。
标签: arrays powershell arraylist