ハッシュテーブルのソートに問題があります。私は元のスクリプトで誰かを圧倒しないように、必需品を裸にするために自分のコードを分解しました。値のプロパティでPowerShellハッシュテーブルをソート
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
}
出力は、私は、これはSort-Object
の正しい使い方を知らないだけの単純なケースであると確信して
PowerShell Version = 3.0
Ascending
2
1
4
3
Descending
2
1
4
3
です。ソートはSort-Object Name
で正しく動作するので、Value.SortOrder
の処理方法がわからない場合はどうなるのでしょうか?
私が質問したコードを使用するように更新しましたが、同じ出力が得られます。 –
私は期間を逃したように見えます。質問をオリジナルに戻して編集し直します。 –
btwこれは別の質問かもしれませんが、> = 2やその他のフィルタを使うのは簡単な方法です。 –