泛型方法 | 非泛型方法 | 区别 |
int IComparable<T>.CompareTo(T otherObj) | int IComparable.CompareTo(object otherObj) | 在泛型版本中是强类型化的 |
bool IComparable<T>.Equals(T otherObj) | N/A | 在非泛型接口中不存在,可以改用继承的object.Equals() |
int IComparer<T>.Compare(T objectA,T objectB) | int IComparer.Compare(object objectA,object objectB) | 在泛型版本中是强类型化的 |
bool IComparer<T>.Equals(T otherA,T objectB) | N/A | 在非泛型接口中不存在,可以改用继承的object.Equals() |
int IComparer<T>.GetHashCode(T objectA) | N/A | 在非泛型接口中不存在,可以改用继承的object.GetHashCode() |
对要排序的类型提供IComparable<T>接口,或者提供IComparer<T>接口,就可以对List<T>进行排序。还可以提供泛型委托作为排序方法。例:
Comparison<T>:这个委托类型用于排序方法,其返回类型和参数如下:
int method(T objectA,T objectB)
Predicate<T>:这个委托类型用于搜索方法,其返回类型和参数如下:
bool method(T targetObject)