【发布时间】:2011-12-09 18:51:18
【问题描述】:
PowerShell 3.0 CTP1 引入了一个新功能[ordered],它在某种程度上是OrderedDictionary 的快捷方式。我无法想象它的实际用例。为什么这个功能真的有用?有人可以提供一些有用的例子吗?
示例:恕我直言,这是演示案例而不是实际案例:
$a = [ordered]@{a=1;b=2;d=3;c=4}
(我不介意它是否仍然有用,那我只是在寻找其他有用的案例)。
我不是在寻找OrderedDictionary 的用例,它确实很有用。但是我们可以在 v2.0 中直接使用它(我做了很多)。我试图理解为什么还需要这个新功能[ordered]。
从答案中收集的用例:
$hash = [ordered]@{}
短于
$hash = New-Object System.Collections.Specialized.OrderedDictionary
注意ordered 不是该类型的真正快捷方式。 New-Object ordered 不起作用。
注意2:但这仍然是一个很好的捷径,因为(我认为,不能尝试)它创建了典型的 PowerShell 不区分大小写的字典。 v2.0 中的等效命令确实太长了:
New-Object System.Collections.Specialized.OrderedDictionary]([System.StringComparer]::OrdinalIgnoreCase)
【问题讨论】:
-
其实是
$hash = New-Object System.Collections.Specialized.OrderedDictionary -
谢谢,已更正。所以是的,它节省了打字时间。但这就是全部吗?
-
那么
[xml]、[datetime]、[hashtable]以及包括[int]在内的许多其他人呢——毕竟它们被称为加速器。 -
是的,但是这个加速器与上面提到的不同。它不是类型的快捷方式。但它使用相同的语法。这令人困惑。到目前为止,它加速时唯一真正的用例是
[ordered]@{}带有 empty 哈希表(我不认为带有硬编码值的示例真的有用)。我不会只为此添加功能。我一定错过了其他有用的东西,这就是我问这个问题的原因。 -
也许等到最终版本?毕竟现在是 CTP。
标签: powershell dictionary powershell-3.0