国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

C# List.sort排序詳解(多權(quán)重,升序降序)

2019-11-17 02:29:11
字體:
供稿:網(wǎng)友

C# List.sort排序詳解(多權(quán)重,升序降序)

很多人可能喜歡Linq的orderBy排序,可惜U3D里面linq在Ios上會報錯,所以就必須使用list的排序。

其實理解了并不難

升序降序比較


sort有三種結(jié)果 1,-1,0分別是大,小,相等。

默認(rèn)List的排序是升序排序

如果要降序排序,也很簡單,只需要在前面加一個負(fù)號

List<int> tmp = new List<int>(){5,1,22,11,4};tmp.Sort((x, y) => -x.CompareTo(y));Console.WriteLine(tmp);//22,11,5,4,1

對于非數(shù)值類型比較用.CompareTo(...),基于IComparable接口。基本上C#的值類型都有實現(xiàn)這個接口,包括string。

而數(shù)值類型也可以自己比較。排序時左右兩個變量必須是左-比較-右(被比較),切記不可反過來用。

微軟官方推薦的參數(shù)命名方式是x(左),y(右)

多權(quán)重比較


假設(shè)需要tuple里item2的值優(yōu)先于item1。這個時候只要給比較結(jié)果*X。

List<Tuple<int, int>> tmp = new List<Tuple<int, int>>(){    new Tuple<int,int>(2,1),    new Tuple<int,int>(53,1),    new Tuple<int,int>(12,1),    new Tuple<int,int>(22,3),    new Tuple<int,int>(1,2),};tmp.Sort((x, y) => -(x.Item1.CompareTo(y.Item1) + x.Item2.CompareTo(y.Item2) * 2));Console.WriteLine(tmp);//22,3//1,2//53,1//12,1//2,1

如果單獨對升序降序控制,可以去掉大括號,分開處理


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 涞源县| 孝义市| 汝城县| 南和县| 九龙县| 宝鸡市| 内乡县| 枝江市| 分宜县| 泰和县| 长子县| 临洮县| 光泽县| 香河县| 会东县| 湖州市| 广东省| 左云县| 明光市| 大荔县| 鄂温| 青神县| 丁青县| 淮北市| 体育| 平江县| 特克斯县| 抚远县| 化州市| 吉隆县| 资阳市| 巴林左旗| 信丰县| 余庆县| 来宾市| 会昌县| 乳源| 本溪市| 湖北省| 霞浦县| 东方市|