我正在开发PowerShell中的应用程序。我将变量存储在哈希表中。如何在哈希表中保留订单?我希望订单与我填写哈希表时的顺序相同。
答案 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的排序。
使用[ordered]的具体说明: http://arcanecode.com/2012/06/04/powershell-v3-ordered-hashtables/
答案 2 :(得分:2)
哈希表没有订单。如果你想订购,那么你想要的是一个System.Collections.Specialized.OrderedDictionary。