Обобщения в PowerShell 2 не работают? - PullRequest
13 голосов
/ 21 января 2010

Как я могу создать список в PowerShell 2? Я пробовал это:

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

и

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

и все, что я получаю, это просто ничто. Что не так?

Я использую XP SP3, если это имеет значение

Ответы [ 2 ]

18 голосов
/ 21 января 2010

Попробуйте это:

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
3 голосов
/ 21 января 2010

Если вы пытаетесь создать список на основе строк, попробуйте следующее:

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
...