我有一个数组中的文件列表。我想枚举这些文件,并从中删除特定文件。显然我无法从数组中删除项目,所以我想使用ArrayList
。
但以下内容对我不起作用:
$temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($temp)
Where $temp
是一个数组。
我怎样才能做到这一点?
我也无法让该构造函数工作。然而,这似乎有效:
# $temp = Get-ResourceFiles
$resourceFiles = New-Object System.Collections.ArrayList($null)
$resourceFiles.AddRange($temp)
您还可以在构造函数中传递一个整数来设置初始容量。
当您说要枚举文件时,是什么意思?为什么不能将想要的值过滤到一个新的数组中?
Edit:
看来你可以像这样使用数组构造函数:
$resourceFiles = New-Object System.Collections.ArrayList(,$someArray)
注意逗号。我相信正在发生的事情是,当您调用 .NET 方法时,您总是将参数作为数组传递。 PowerShell 解压该数组并将其作为单独的参数传递给该方法。在这种情况下,我们不希望 PowerShell 解压数组;我们希望将数组作为一个单元传递。现在,逗号运算符创建数组。因此,PowerShell 解压该数组,然后我们使用逗号运算符再次创建该数组。我认为这就是正在发生的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)