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