C#比较类/接口、Dictionary 排序
Comparison<T>、 Comparer<T>、 System.IComparable、IComparable<T>的区别
Comparison<T>,继承委托。开发人员可以在外部写个用于比较大小的函数,然后作为 Comparison<T>类型的参数传入,进行比较,非常方便。
派生自 Comparer<T> 类和实现 System.IComparable 接口之间的差异如下:
若要指定默认情况下(Default获取)应如何比较两个对象,请在类中实现 System.IComparable 接口。 这可确保排序操作将使用您提供的默认比较代码。
若要定义要使用的比较器而不是默认比较器,请从 Comparer<T> 类派生。 然后,您可以在采用比较器作为参数的排序操作中使用此比较器。
- Default 属性返回的对象使用 System.IComparable<T> 泛型接口来比较两个对象。 如果类型 T 未实现 System.IComparable<T> 泛型接口,Default 属性返回使用 System.IComparable 接口的 Comparer<T>。