[英]Powershell array is not cleared
我的源代码:
# $arr = @(); results in same behaviour
$arr = New-Object System.Collections.ArrayList;
$arr.Count;
$arr += "z";
$arr.Count;
$arr.Clear();
$arr.Count;
输出:
0
1
1
当你执行+=
,Powershell会做一些数组转换$arr.Add("z")
,所以简单的解决方案是执行$arr.Add("z")
。 然后$arr.Clear()
会像你期望的那样行事。
澄清:
@()
是一个Powershell数组。 它使用+=
,但你无法Clear
它。 (但是,您可以再次执行$arr = @()
将其重置为空数组。) ArrayList
是.NET集合。 它使用.Add
,你可以Clear
它,但出于某种原因,如果你+=
它,Powershell会做一些奇怪的数组强制。 (如果有任何专家对此发表评论,真棒。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.