程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#自定義對象排序,

C#自定義對象排序,

編輯:C#入門知識

C#自定義對象排序,


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

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved