我已经写了一大堆对象,这些对象都是集合的所有部分,我需要对其进行大量的排序和搜索。在大多数这些对象上,我已经实施并覆盖了Equals
方法,IEquatable
和operator!
和operator==
。列表<T>排序使用比较器<T>而不是IEquatable,为什么?
现在我想要在上面实现的对象上使用List<T>.Sort
,事实证明我需要实现IComparable
来执行自定义排序。
为什么Sort使用IComparable
,那么在我的所有对象中有什么是IEquatable
?
另外,Object.Equal
压倒一切与这一切有什么关系?
思想实验;你有三个整数,'a','b'和'c';你知道'a == b','a!= c'和'b!= c'(这是所有可用的组合)。现在:把'a','b'和'c'按升序排列; p – 2011-05-26 12:47:33