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中準備排序的開始元素索引和結束元素索引。