2010-01-21 34 views
13

我該如何在PowerShell 2中創建一個列表? 我試着這些:
PowerShell 2中的泛型不起作用?

[activator]::createinstance(([type]'system.collections.generic.list`1').makegenerictype([string])) 


[activator]::createinstance(([type]'system.collections.generic.list`1').makegenerictype([string])) 

和我得到的只是什麼都沒有。出了什麼問題?

我運行XP SP3,如果它的事項

回答

18

試試這個:

PS> $list = New-Object 'System.Collections.Generic.List[string]' 
PS> $list.Add('foo') 
PS> $list 
foo 

PS> $d = New-Object 'System.Collections.Generic.Dictionary[string,datetime]' 
PS> $d.Add('moonshot', [datetime]'7/20/1969') 
PS> $d['moonshot'] 

Sunday, July 20, 1969 12:00:00 AM 
+0

我也無法得到這一個工作,沒有任何回報。它應該工作嗎? – Parsa 2010-01-21 17:04:33

+0

如果你使用的是PowerShell 2.0,它應該。 – 2010-01-21 17:19:55

+0

現在,我想通了,這些嘗試都沒問題,問題是PS正在顯示數據,所以它什麼都不顯示,謝謝。 – Parsa 2010-01-21 17:27:44

3

如果試圖創建一個基於字符串列表,試試這個:

New-Object 'System.Collections.Generic.List[system.string]' 

請注意,您必須指定「system.string」 (至少在我的比賽中))。如果你只是使用'string',它會拋出一個異常。

[61]: New-Object 'System.Collections.Generic.List[string]' 
New-Object : Cannot find type [System.Collections.Generic.List[string]]: make sure the assembly containing this type is loaded. 
At line:1 char:11 
+ New-Object <<<< 'System.Collections.Generic.List`1[string]' 
    + CategoryInfo   : InvalidType: (:) [New-Object], PSArgumentException 
    + FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand 
+0

沒有運氣,我就是用這個語法在PowerShell中1,但現在並沒有在PS2返回任何東西,這就是爲什麼我試圖使用激活的原因類。 – Parsa 2010-01-21 16:21:14

+0

這是什麼意思「它不返回任何東西」?什麼是錯誤信息 – stej 2010-01-22 09:45:37

+2

當收集爲空時,它什麼都不輸出。這種類型給你的印象是,新對象實際上失敗了。 – 2010-01-22 23:30:53