PowerShell中的IEnumerable <customtype> </customtype>

时间:2010-03-22 19:40:07

标签: .net generics powershell ienumerable

我正在尝试在PowerShell中使用Enumerable.ToList()。显然,要做到这一点,我必须明确地将对象转换为IEnumerable<CustomType>,但我无法做到这一点。我似乎无法在PowerShell中正确编写IEnumerable<CustomType>IEnumerable<string>CustomType本身都能正常工作(我尝试使用的自定义类型称为WpApiLib.Page),所以我不知道我能做错什么。

PS C:\Users\Svick> [Collections.Generic.IEnumerable``1[System.String]]

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    IEnumerable`1


PS C:\Users\Svick> [WpApiLib.Page]

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Page                                     System.Object


PS C:\Users\Svick> [Collections.Generic.IEnumerable``1[WpApiLib.Page]]
Unable to find type [Collections.Generic.IEnumerable`1[WpApiLib.Page]]: make su
re that the assembly containing this type is loaded.
At line:1 char:51
+ [Collections.Generic.IEnumerable``1[WpApiLib.Page]] <<<<

2 个答案:

答案 0 :(得分:6)

在PowerShell v2中,您可以使用

Collections.Generic.IEnumerable[string]

引用IEnumberable<string>。该语法适用于New-Object(虽然没有使用接口),它似乎也适用于强制转换。

答案 1 :(得分:3)

请在此处查看答案:Powershell Generic Collections。看起来这是PowerShell如何解释泛型的一个不幸结果,您需要完全限定WpApiLib.Page类型。