Powershell - возврат массива из функции
День добрый. Имеется функция, которая должна возвращать коллекцию объектов PSCustomObjects. Однако при возврате, в начало коллекции добавляется какой то мусор. Пример, создается коллекция с одним элементом, но при возврате в коллекции появляется мусор :
function GetArrayList()
{
$Lists = New-Object System.Collections.ArrayList;
$Lists.Clear;
$Lists.Add("hi");
Write-Host $Lists;
return $Lists;
}
$MyVar = GetArrayList;
Write-Host $MyVar;
Как мы видим, выводится содержимое коллекции до возврата из функции, и после. Результат :
hi
void Clear(), void IList.Clear() 0 hi
Откуда добавляются элементы void Clear(), void IList.Clear()?
Ответы (1 шт):
Это известная особенность PowerShell. Проблема в том что Write-Host в связки с функциями .Net зачем то выводит интерфесы класса. Решение использовать комдлет Out-Null для вызове функции чтоб скрыть "мусор". Если нужен результат функции не используй .Net arrayList используй Powershell Array