我已經寫了一大堆對象,這些對象都是集合的所有部分,我需要對其進行大量的排序和搜索。在大多數這些對象上,我已經實施並覆蓋了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