我在PowerShell数组中发现了一些有趣的行为,即,如果我将数组声明为:
$array = @() 然后尝试使用$array.Add("item")方法向其中添加项目,我收到以下错误:
异常调用带有“ 1”参数的“添加”:“集合的大小固定。”
但是,如果我使用附加项目$array += "item",则该项目将毫无问题地被接受,并且“固定大小”限制似乎并不适用。
为什么是这样?
如果要动态调整大小的数组,则应列出列表。您不仅会获得.Add()功能,而且正如@ frode-f所解释的,动态数组无论如何都具有更高的内存效率和更好的实践。
而且非常容易使用。
代替您的数组声明,请尝试以下操作:
$outItems = New-Object System.Collections.Generic.List[System.Object] 添加项目很简单。
$outItems.Add(1) $outItems.Add("hi") 而且,如果在完成后确实想要一个数组,那么也有一个函数。
$outItems.ToArray()
问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。