Ответ 1
Я не могу заставить этот конструктор работать. Это, похоже, работает:
# $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 распаковывает массив, затем мы снова создаем массив с помощью оператора запятой. Я думаю, что это то, что происходит.