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 шт):

Автор решения: Gordon

Это известная особенность PowerShell. Проблема в том что Write-Host в связки с функциями .Net зачем то выводит интерфесы класса. Решение использовать комдлет Out-Null для вызове функции чтоб скрыть "мусор". Если нужен результат функции не используй .Net arrayList используй Powershell Array

→ Ссылка