數組對象Array有一個Sort方法(點擊查看Sort方法的實現),專門是用來排序的,請看下圖
如果我們想為自己的類添加一個排序,只需要繼承IComparable接口,實現CompareTo方法就行;
調用CompareTo方法內部實現對象的比較,通過返回值確定對象的順序
負數值,當前對象<參數對象
正數值,當前對象>參數對象
零,兩個對象相等
下面我們就根據接口自定義自己的對象排序方式
1 class People:IComparable 2 { 3 public uint Age { get; set; } 4 5 #region IComparable 成員 6 //實現一個人類根據年齡排序 7 public int CompareTo(object obj) 8 { 9 var people = (People)obj;10 if (this.Age > people.Age)11 return 1;12 else if (this.Age < people.Age)13 return -1;14 return 0;15 }16 17 #endregion18 }
1 static void Main(string[] args) 2 { 3 var arrs =new People[] { 4 new People{Age=15}, 5 new People{Age=24}, 6 new People{Age=13}, 7 new People{Age=18}, 8 new People{Age=14} 9 };10 11 arrs.ToList().ForEach(a => Console.Write("{0} ", a.Age));12 Array.Sort(arrs);13 Console.WriteLine("");14 arrs.ToList().ForEach(a => Console.Write("{0} ", a.Age));15 }
新聞熱點
疑難解答