我正在尝试在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]] <<<<
答案 0 :(得分:6)
在PowerShell v2中,您可以使用
Collections.Generic.IEnumerable[string]
引用IEnumberable<string>
。该语法适用于New-Object
(虽然没有使用接口),它似乎也适用于强制转换。
答案 1 :(得分:3)
请在此处查看答案:Powershell Generic Collections。看起来这是PowerShell如何解释泛型的一个不幸结果,您需要完全限定WpApiLib.Page
类型。