【发布时间】:2012-07-06 00:10:50
【问题描述】:
我需要从多个来源创建一个不同的历史项目列表,其中最新的项目是保留的项目。我正在尝试这样的事情,但由于问题域,检查结果是否准确并不容易。
Function GetUnique {
param( $source1, $source2, ...)
$items = $source1 + $source2 + ...;
$unique = $items | Sort-Object -Desc -Unique -Prop Timestamp;
# Does this contain the most recent items?
$unique;
}
我很惊讶没有 -Stable 开关来指示偏好。
注意:我知道即使排序是稳定的,我也会对唯一性算法做出假设。如果排序是稳定的,我可以相对容易地编写我自己的稳定的 Get-Unique 命令行开关,假设稳定的排序输入。但是,我真的不想实现 MergeSort。
【问题讨论】:
-
我猜 PowerShell 内部只使用
List.Sort或 LINQ 的OrderBy(至少我们在 Pash 中是这样做的),因此实际算法甚至可能会根据 .NET 版本而改变。
标签: sorting powershell stable-sort