【发布时间】:2013-08-02 18:07:10
【问题描述】:
我在对哈希表进行排序时遇到问题。我已将我的代码分解为仅是必需品,以免我的原始脚本让任何人不知所措。
Write-Host "PowerShell Version = " ([string]$psversiontable.psversion)
$h = @{}
$Value = @{SortOrder=1;v1=1;}
$h.Add(1, $Value)
$Value = @{SortOrder=2;v1=1;}
$h.Add(2, $Value)
$Value = @{SortOrder=3;v1=1;}
$h.Add(3, $Value)
$Value = @{SortOrder=4;v1=1;}
$h.Add(4, $Value)
Write-Host "Ascending"
foreach($f in $h.GetEnumerator() | Sort-Object Value.SortOrder)
{
Write-Host $f.Value.SortOrder
}
Write-Host "Descending"
foreach($f in $h.GetEnumerator() | Sort-Object Value.SortOrder -descending)
{
Write-Host $f.Value.SortOrder
}
输出是
PowerShell Version = 3.0
Ascending
2
1
4
3
Descending
2
1
4
3
我确信这只是一个不知道Sort-Object 正确用法的简单案例。排序在Sort-Object Name 上正常工作,所以可能与不知道如何处理Value.SortOrder 有关?
【问题讨论】:
标签: sorting powershell hashtable