2010-01-21 3 views
13

Comment faire une liste dans PowerShell 2? J'ai essayé ces:
Génériques dans PowerShell 2 ne fonctionne pas?

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

et

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

et tout ce que je reçois est tout simplement rien. Qu'est-ce qui ne va pas?

Je suis en XP SP3, si elle importe

Répondre

18

Essayez ceci:

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

Je ne peux pas obtenir ce travail non plus, ne retourne rien. Cela devrait-il fonctionner? – Parsa

+0

Si vous êtes sur PowerShell 2.0, il devrait. –

+0

Maintenant, j'ai compris, ces tentatives allaient bien, le problème était que le PS affichait les données, donc il n'afficherait rien, merci. – Parsa

3

Si vous essayez de créer une liste basée sur des chaînes, essayez ceci:

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

Notez que vous devez spécifier « System.String » (au moins sur ma maquette;)). Si vous utilisez juste 'string', il déclenche une exception.

[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

Pas de chance, j'utilisais cette syntaxe dans PowerShell 1, mais maintenant il ne retourne rien dans PS2, c'est la raison pour laquelle j'ai essayé d'utiliser le Activator classe. – Parsa

+0

qu'est-ce que cela signifie "il ne retourne rien"? qu'est-ce que le message d'erreur – stej

+2

Lorsque la collection est vide, elle ne génère rien. En quelque sorte vous donne l'impression que le nouvel objet a échoué alors qu'en fait il a fonctionné. –

Questions connexes