powershell中的哈希表

时间:2010-11-24 08:29:11

标签: powershell hashtable

我正在开发PowerShell中的应用程序。我将变量存储在哈希表中。如何在哈希表中保留订单?我希望订单与我填写哈希表时的顺序相同。

3 个答案:

答案 0 :(得分:8)

哈希表本质上不保持值的顺序。 网上已经有一些解决方法。检查这些

http://www.tellingmachine.com/post/2009/01/When-PowerShell-hash-table-magic-backfires.aspx

http://huddledmasses.org/powershell-and-hashtable-oddities/

或尝试

PS C:\WINDOWS\system32> $OrderedList = New-Object System.Collections.Specialized.OrderedDictionary
PS C:\WINDOWS\system32> $OrderedList
PS C:\WINDOWS\system32> $OrderedList.Add("Name","Ravi")
PS C:\WINDOWS\system32> $OrderedList.Add("Age","30")
PS C:\WINDOWS\system32> $OrderedList

Name                           Value
----                           -----
Name                           Ravi
Age                            30

答案 1 :(得分:3)

PowerShell v3将使用[ordered]修饰符支持有序哈希表。我怀疑这只是一个使用OrderedDictionary的排序。

一般v3功能概述:http://blogs.technet.com/b/windowsserver/archive/2012/05/30/windows-server-2012-powershell-3-0-and-devops-part-2.aspx

使用[ordered]的具体说明: http://arcanecode.com/2012/06/04/powershell-v3-ordered-hashtables/

答案 2 :(得分:2)

哈希表没有订单。如果你想订购,那么你想要的是一个System.Collections.Specialized.OrderedDictionary。