![]() |
1
4
排序算法(QuickSort)依赖于可预测的IComparer实现。在BCL中进行了几十层间接寻址之后,您最终会得到以下方法:
深入到QuickSort实现中,您会看到如下代码:
基本上,如果IComparer对QuickSort调用的行为不正确,则抛出一个indexOutOfRangeException,它被包装在n ArgumentException中。 下面是另一个坏的比较者的例子
因此,我想,简短的答案是,只要您的IComparer实现不一致地比较文档中定义的值:
|
![]() |
2
3
我今天偶然发现了这个,在调查之后,我发现有时我的比较者被打电话来,X和Y是指 同一对象 ,我的比较器没有返回0。一旦我解决了这个问题,我就不再得到例外了。 HTH 埃里克 |
![]() |
Charles · 使用3个或更多参数实现排序机制 10 年前 |