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