在Powershell中实现ForEach迭代器

时间:2018-10-30 00:00:53

标签: powershell class foreach

我已经在PowerShell中创建了一个自定义类,希望能够通过foreach命令进行访问。

在PHP中,可以通过在类声明中使用implements iterator并实现一些变量和函数来实现此目的。在PowerShell中有类似的东西吗?如何让foreach访问我的PowerShell类?

注意:我正在使用PowerShell Core

1 个答案:

答案 0 :(得分:1)

您可以像这样扩展一些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