如何在单行下面做? 执行行后, $ b的值为空
$b = ([System.Collections.Generic.Dictionary[string,object]]::new()).Add("dd",$null)
或
[System.Collections.Generic.Dictionary[string,object]]::new()).Add("dd",$null) -eq $null
True
答案 0 :(得分:3)
($b = [System.Collections.Generic.Dictionary[string,object]]::new()).Add("dd",$null)
答案 1 :(得分:0)
尝试hash tables而不是.NET词典。这些是存储键值对的System.Collections.Hashtable
个对象。在PowerShell中,您可以使用运算符@{}
来创建哈希表,并且可以在一行上快速初始化一个具有多个值的哈希表。
使用哈希表可以有效地获得与字典相同的行为,除了一些性能差异,更明显的是 - 缺乏对值的强类型。
简单演示:
PS C:> @{ "dd" = $null }
Name Value
---- -----
dd
要在一行中从哈希表转换为PowerShell中的字典:
$dictionary = New-Object 'System.Collections.Generic.Dictionary[String,object]'; (@{ "dd" = $null }).Keys | % { $dictionary.Add($_, $hashtable.Item($_)) }