List的Sort 函数CompareTo升序降序排序
一、升序、降序
其實C#中的List的Sort函數中的比較函數CompareTo有三種結果 1, -1 ,0分別代表大,小,相等。默認List的排序是升序排序。
舉個例子:在比較函數CompareTo()中,如果 x>y return 1;則是按照升序排列。如果x>y return -1;則是按照降序排列。這就是1和-1大小的含義。其實你非要這么寫 x<y return 1;則也表示降序排列。不過大家一般習慣x>y return 1;升序,如果想要降序只需return -1;即可。
Tips:系統List默認的排序是升序,如果你想要降序,可以直接在比較函數前面加個負號,把返回結果由1變成-1即可。例如:
List<int> list = new List<int>() { 2, 1, 3, 4 }; list.Sort((x, y) => -x.CompareTo(y)); Console.WriteLine(list); //4,3,2,1- ?
二、對于非數值類型、string等或者官方未來實現IComparable接口的類型,可通過實現IComparable接口重寫CompareTo方法來排序。
舉個例子:自定義一個類,然后繼承字: IComparable<>,然后實現接口的方法 int CompareTo(object obj_)就可以了
- ?
三、多權重排序
其實就是對優先級最高的字段進行排序,然后在對次級優先級的字段進行排序就可以了。例如對Persond的對象先進行ID排序,然后再進行Name排序:
- ?
四、使用匿名函數來實現Comparison
雖然想實現排序上面的接口代碼也不多,但有時候只是偶爾排序,并不想修改類,怎么辦呢?當然有更簡單的方法,委托和lambda表達式:
- ?
**List筆記
List賦值到另一個List的方法,進行AddRange。
總結
以上是生活随笔為你收集整理的List的Sort 函数CompareTo升序降序排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 评分建模之账龄分析
- 下一篇: AARRR框架度量指标介绍,让你的初创公