一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

C# Sort排序

 kiki的號 2017-05-08

List 的Sort方法排序有三種結(jié)果 1,0,-1分別表示大于,等于,小于。

1.對于數(shù)值類型的List (List<int>),直接使用Sort進(jìn)行排序。

[csharp] view plain copy
  1. List<int> scoreList=new List<int>(){89,100,78,23,67};  
  2.   
  3. scoreList.Sort();//默認(rèn)按升序排列,相當(dāng)于:scoreList.Sort((x,y)=>x.CompareTo(y))  
  4.   
  5. scoreList.Sort((x,y)=>-x.CompareTo(y));//降序排列  

2.對于非數(shù)值類型或者自定義類型,可通過實(shí)現(xiàn)IComparable接口重寫CompareTo方法來排序:

[csharp] view plain copy
  1. public class Person : IComparable<Person>  
  2.     {  
  3.         public string Name { getset; }  
  4.         public int Age { getset; }  
  5.   
  6.         //ComparetTo:大于 1; 等于 0; 小于 -1;  
  7.         public int CompareTo(Person p)  
  8.         {  
  9.             int result;  
  10.             if (this.Name == p.Name && this.Age == p.Age)  
  11.             {  
  12.                 result = 0;  
  13.             }  
  14.             else  
  15.             {  
  16.                 //this.Name表示后面的 Mary p.Name表示前面的 Bob  
  17.                 //Mary 跟Bob 由小到大比較,如果Mary 與 Bob 比較 大于0(說明Mary 大于Bob),則 result=1(說明是由小到大的順序)  
  18.                 if (this.Name.CompareTo(p.Name) > 0)//先按名字小到大排列  
  19.                 {  
  20.                     result = 1;  
  21.                 }  
  22.                 else if (this.Name == p.Name && this.Age > p.Age)//名字相同則按年齡由小到大排列  
  23.                 {  
  24.                     result = 1;  
  25.                 }  
  26.                 else  
  27.                 {  
  28.                     result = -1;  
  29.                 }  
  30.             }  
  31.             return result;  
  32.         }  
  33.   
  34.         public override string ToString()  
  35.         {  
  36.             return this.Name + "-" + this.Age;  
  37.         }  
  38.     }  
[csharp] view plain copy
  1. List<Person> lstPerson = new List<Person>();  
  2.   lstPerson.Add(new Person() { Name = "Bob", Age = 19 });  
  3.   lstPerson.Add(new Person() { Name = "Mary", Age = 18 });  
  4.   lstPerson.Add(new Person() { Name = "Mary", Age = 17 });  
  5.   lstPerson.Add(new Person() { Name = "Lily", Age = 20 });  
  6.   lstPerson.Sort();  
  7.   foreach (Person item in lstPerson)  
  8.   {  
  9.       Console.WriteLine(item.ToString());  
  10.   }  
  11.   Console.ReadKey();  

輸出:Bob-19 Lily-20 Mary-17 Mary-18
或不實(shí)現(xiàn)IComparable接口而使用linq排序:

[csharp] view plain copy
  1. List<Person> lstPerson = new List<Person>();  
  2.           lstPerson.Add(new Person() { Name = "Bob", Age = 19 });  
  3.           lstPerson.Add(new Person() { Name = "Mary", Age = 18 });  
  4.           lstPerson.Add(new Person() { Name = "Mary", Age = 17 });  
  5.           lstPerson.Add(new Person() { Name = "Lily", Age = 20 });  
  6.           lstPerson.Sort();  
  7.   
  8.           lstPerson.Sort((x, y) => {  
  9.               int result;  
  10.               if (x.Name == y.Name && x.Age == y.Age)  
  11.               {  
  12.                   result = 0;  
  13.               }  
  14.               else  
  15.               {  
  16.                   if (x.Name.CompareTo(y.Name) > 0)  
  17.                   {  
  18.                       result = 1;  
  19.                   }  
  20.                   else if (x.Name == y.Name && x.Age > y.Age)  
  21.                   {  
  22.                       result = 1;  
  23.                   }  
  24.                   else  
  25.                   {  
  26.                       result = -1;  
  27.                   }  
  28.               }  
  29.               return result;  
  30.           });  
  31.   
  32.   
  33.           foreach (Person item in lstPerson)  
  34.           {  
  35.               Console.WriteLine(item.ToString());  
  36.           }  
  37.           Console.ReadKey();  
輸出:Bob-19 Lily-20 Mary-17 Mary-18



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    隔壁的日本人妻中文字幕版| 在线亚洲成人中文字幕高清 | 粉嫩国产一区二区三区在线| 日韩成人免费性生活视频| 丰满的人妻一区二区三区| 99久久成人精品国产免费| 精品香蕉一区二区在线| 一级欧美一级欧美在线播| 日本加勒比在线观看不卡| 亚洲一区二区三区在线中文字幕 | 亚洲综合精品天堂夜夜| 国产人妻精品区一区二区三区| 少妇特黄av一区二区三区| 国产综合一区二区三区av| 精品久久av一二三区| 日本黄色录像韩国黄色录像| 日本丰满大奶熟女一区二区| 免费性欧美重口味黄色| 日本熟妇熟女久久综合| 91欧美日韩精品在线| 老司机亚洲精品一区二区| 日韩精品在线观看一区| 日本婷婷色大香蕉视频在线观看| 国产精品欧美一级免费| 激情内射亚洲一区二区三区| 亚洲妇女作爱一区二区三区| 久久亚洲国产视频三级黄| 色哟哟在线免费一区二区三区| 免费性欧美重口味黄色| 91欧美视频在线观看免费| 又黄又硬又爽又色的视频| 久久一区内射污污内射亚洲| 91午夜少妇极品福利| 特黄大片性高水多欧美一级 | 亚洲精选91福利在线观看 | 国产精品福利一二三区| 日韩不卡一区二区视频| 国产欧美精品对白性色| 99少妇偷拍视频在线| 91亚洲精品国产一区| 国产又粗又深又猛又爽又黄|