我正在使用PowerShell开发一个应用程序,将变量存储在哈希表中。如何保持哈希表的顺序?我希望顺序与填充哈希表时相同。
我正在使用PowerShell开发一个应用程序,将变量存储在哈希表中。如何保持哈希表的顺序?我希望顺序与填充哈希表时相同。
哈希表本质上不维护值的顺序。
网络上已经有一些解决方法了。请查看以下链接:
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
PowerShell v3将支持有序哈希表,使用[ordered]修饰符。我怀疑在幕后这只是使用了OrderedDictionary的快捷方式。
使用[ordered]的具体示例: http://arcanecode.com/2012/06/04/powershell-v3-ordered-hashtables/
哈希表不保持顺序。如果您想要顺序,那么您需要使用 System.Collections.Specialized.OrderedDictionary。