Реализация итератора ForEach в Powershell - PullRequest
0 голосов
/ 30 октября 2018

Я создал собственный класс в PowerShell, доступ к которому я хотел бы получить с помощью команды foreach.

В PHP я могу сделать это, используя implements iterator в моем объявлении класса и реализуя некоторые переменные и функции. Есть ли что-то похожее в PowerShell? Как мне разрешить доступ к моему классу PowerShell foreach?

Примечание: я использую PowerShell Core

1 Ответ

0 голосов
/ 30 октября 2018

Вы можете расширить некоторую реализацию IEnumerable, например так:

class Test : System.Collections.Generic.List[PSObject]
{
    Test($items)
    {
        $items -split ';' |% { $this.Add($_) }
    }
}

$test = New-Object Test('a;1;x;y;z;2;3;4')

foreach ($item in $test)
{
    Write-Host $item
}

Результат:

a
1
x
y
z
2
3
4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...