我需要从多个来源创建一个独特的历史记录项目列表,其中最近的项目是保留的。我正在尝试类似于以下内容的操作,但由于问题领域的原因,检查结果是否准确并不简单。
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。
List.Sort
或者 LINQ 的OrderBy
(至少在 Pash 中是这样做的),所以实际算法可能会根据 .NET 版本而改变。 - Joey