9

我正在实现一个自定义比较器,以便为各种视图中的项目应用自定义排序顺序。

有时我发现我想保持现有的项目顺序,在这种情况下,我应该从我的Compare方法实现中返回什么?简单地返回 0 就足够了,还是我需要主动识别哪个项目先出现?

4

2 回答 2

2

(这个答案归功于Lee

这取决于用于进行排序的算法是否稳定。例如,OrderBy是稳定的,因此返回 0 fromCompare将意味着这两个项目在列表中保留其原始顺序,但是List.Sort不是,因此返回 0 fromCompare并不能保证这两个项目将在它们的排序输出中的原始顺序。

于 2013-04-10T14:10:30.330 回答
1

零,但您的排序算法可能仍会更改其顺序。

于 2013-04-10T14:02:52.007 回答