在Powershell中实现ForEach迭代器

在Powershell中实现ForEach迭代器,powershell,class,foreach,Powershell,Class,Foreach,我在PowerShell中创建了一个自定义类,我希望能够通过foreach命令访问该类 在PHP中,我可以通过在类声明中使用implements迭代器并实现一些变量和函数来实现这一点。PowerShell中有类似的东西吗?我如何让foreach访问我的PowerShell类 注意:我正在使用PowerShell Core您可以像这样扩展某些IEnumerable实现: class Test : System.Collections.Generic.List[PSObject] { Tes

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

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


注意:我正在使用PowerShell Core

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

你能举个例子说明你想要发生什么吗?也许有一种更好的方法比你们所想的更好,你们需要实现这个接口。