我试图在PowerShell中声明List,其中Person是使用Add-Type定义的:
add-type -Language CSharpVersion3 -TypeDefinition @" public class Person { public Person() {} public string First { get; set; } public string Last { get; set; } } "@
这很好用:
New-Object Person New-Object System.Collections.Generic.List``1[System.Object]
但是这条线路失败了:
New-Object System.Collections.Generic.List``1[Person]
这有什么不对?
这是New-Object中的错误.这将有助于您更轻松地创建它们:http: //www.leeholmes.com/blog/2006/08/18/creating-generic-types-in-powershell
更新:PowerShell在版本2中添加了对此的支持:
PS > $r = New-Object "System.Collections.Generic.List[Int]" PS > $r.Add(10)
好吧,我试图创建一个FileStream
对象列表,这是我的解决方案(基于此链接 - 实际上描述了解决问题的方法):
$fs = New-Object 'System.Collections.Generic.List[System.IO.FileStream]' $sw = New-Object 'System.Collections.Generic.List[System.IO.StreamWriter]' $i = 0 while ($i < 10) { $fsTemp = New-Object System.IO.FileStream("$newFileName",[System.IO.FileMode]'OpenOrCreate',[System.IO.FileAccess]'Write') $fs.Add($fsTemp) $swTemp = New-Object System.IO.StreamWriter($fsTemp) $sw.Add($swTemp) $i++ }
希望有所帮助!