我有一个数组中的文件列表.我想枚举这些文件,并从中删除特定的文件.显然我不能从数组中删除项目,所以我想使用一个ArrayList.
但是以下几点对我来说不行:
但是以下几点对我来说不行:
$temp = Get-ResourceFiles $resourceFiles = New-Object System.Collections.ArrayList($temp)
其中$temp是一个数组.
我该如何实现呢?
解决方法
我也无法得到该构造函数.然而,这似乎是有效的:
# $temp = Get-ResourceFiles $resourceFiles = New-Object System.Collections.ArrayList($null) $resourceFiles.AddRange($temp)
您还可以在构造函数中传递一个整数来设置初始容量.
当你想要列举这些文件时你是什么意思?为什么你不能将想要的值过滤到一个新的数组?
编辑:
看起来你可以使用这样的数组构造函数:
$resourceFiles = New-Object System.Collections.ArrayList(,$someArray)
注意逗号.我相信正在发生的是当您调用.NET方法时,您始终将参数作为数组传递. PowerShell解包该数组,并将其作为单独的参数传递给该方法.在这种情况下,我们不希望PowerShell解压缩数组;我们想将阵列作为一个单元传递.现在,逗号运算符创建数组.所以PowerShell解包数组,然后再用逗号运算符创建数组.我认为这是发生了什么.