私はPowerShellでアプリケーションを開発しています。変数をハッシュテーブルに格納しています。どのようにして注文をハッシュテーブルに保存できますか?私は、ハッシュテーブルを埋め尽くしたときに、私と同じ順序にしたい。powershellのハッシュテーブル
5
A
答えて
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
2
ハッシュテーブルは、順序を保持していない試してみてください。注文が必要な場合は、System.Collections.Specialized.OrderedDictionaryが必要です。
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
具体的な実例は、[注文]:私はハッシュテーブルをソートしたいいけない http://arcanecode.com/2012/06/04/powershell-v3-ordered-hashtables/
! – RRR
私が変数をハッシュに挿入する頃には、彼らはその場所を変更します。 – RRR
私は注文リストを含むように私の答えを編集しました。それを試してください。 – ravikanth