數組對象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 #endregion 18 }
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 }