1.不带有任何参数的Sort方法----Sort();
2.带有比较器参数的Sort方法 ----Sort(IComparer<T>)
3.带有比较代理方法参数的Sort方法----Sort(Comparison<(Of <(T>)>))4.带有比较起参数,可以指定排序范围的Sort方法----Sort(Int32, Int32 IComparer(T))
较为常见的一种:
List.Sort((a,b)=>{a.CompareTo(b)});
就是上述List<>类的第三种形式,参数里提供了比较代理方法,其中比较代理方法用lamda表达式。
①不带有任何参数的Sort方法----Sort():
使用这种方法不是对List中的任何元素对象都可以进行排序,List中的元素对象必须继承IComparable接口,并且要实现IComparable接口中的CompareTo()方法,在CompareTo()方法中要自己实现对象的比较规则。
②带有比较器参数的Sort方法 ----Sort(IComparer<T>):
List中的元素对象不需要继承IComparable接口,但需要额外创建一个对象的比较器,必须继承IComparer<T>接口,并且实现接口中的Compare()方法。
③带有比较代理方法参数的Sort方法----Sort(Comparison<(Of <(T>)>)):
此方法需要编写一个对象排序比较的方法,对List中的元素对象没有特殊的要求,但在比较方法中需要实现对象比较规则,这个方法实现后,就可以把这方名字作为参数委托给List的Sort方法,Sort方法在排序时会执行这个方法对List中的对象进行比较。
如:List.Sort((a,b)=>{a.CompareTo(b)});
④带有比较起参数,可以指定排序范围的Sort方法----Sort(Int32, Int32 IComparer(T)):
此方法实际是第二种比较器排序的一个扩展,在指定排序比较器的同时,指定排序范围,即List中准备排序的开始元素索引和结束元素索引。