2010-01-21 27 views
13

PowerShell 2'de Nasıl Liste Yapabilirim? Bunları denedim:
Generics çalışmıyor mu?

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

ve

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


tutuyor, bütün sadece bir şey değildir. Neyin yanlış gidiyor?

Eğer dizeleri dayalı bir liste oluşturmayı denerseniz o

cevap

18

bu deneyin: Ben Aktivatör kullanmaya çalıştı neden

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

Bu bir işi alamıyorum, hiçbir şey döndürmez. Çalışmalı mı? – Parsa

+0

PowerShell 2.0 kullanıyorsanız, gerekir. –

+0

Şimdi, hiçbir şey görüntülemek diye sorun PS teşekkür ederim, verileri görüntülemeye edildi, bu girişimler tamam vardı anladım. – Parsa

3

önemi var mı, XP SP3 koşuyorum, şunu deneyin: Eğer 'System.String' belirtmek zorunda

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

Not (en azından benim comp;)). Eğer 'string' kullanırsanız, bir istisna atar.

[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

Hayır şans, ben PowerShell 1'de bu sözdizimini kullanıyordu, ama şimdi PS2 şey dönmez, bu nedendir sınıf. – Parsa

+0

"hiçbir şey geri göndermez" ne anlama geliyor? – stej

+2

hata mesajı nedir Koleksiyon boş olduğunda, hiçbir şey çıkarmaz. Aslında, yeni nesnenin aslında işe yaradığında başarısız olduğu izlenimini verir. –