C J*_*son 29 powershell dictionary initialization
鉴于此powershell代码:
$drivers = New-Object 'System.Collections.Generic.Dictionary[String,String]'
$drivers.Add("nitrous","vx")
$drivers.Add("directx","vd")
$drivers.Add("openGL","vo")
Run Code Online (Sandbox Code Playgroud)
是否可以直接初始化此字典而无需调用Add方法.像.NET一样允许你这样做吗?
像这样的东西?
$foo = New-Object 'System.Collections.Generic.Dictionary[String,String]'{{"a","Alley"},{"b" "bat"}}
Run Code Online (Sandbox Code Playgroud)
[不确定这会涉及什么类型的语法]
Joe*_*ant 61
不Dictionary<TKey,TValue>.C#syntax candy 的初始化语法.Powershell对System.Collections.HashTable(@{})有自己的初始化语法支持:
$drivers = @{"nitrous"="vx"; "directx"="vd"; "openGL"="vo"};
Run Code Online (Sandbox Code Playgroud)
对于[可能]几乎所有情况,它都可以正常工作Dictionary<TKey,TValue>.如果你真的需要Dictionary<TKey,TValue>某些原因,你可以创建一个函数,它需要一个HashTable并遍历键和值来将它们添加到一个新的Dictionary<TKey,TValue>.
无论如何,C#初始化程序语法并不完全"直接".编译器Add()从中生成调用.