委託吧?模擬機票按價錢排序……

 先上源代碼

using那裏多了很多東西,沒用的可以去掉。(平時實驗用的,所以不知道搞了什麼,沒注意刪除)

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Text; 
  4. using System.Data.OleDb; 
  5. using cmdTest.DB; 
  6. using Model; 
  7. using System.Data; 
  8. using Microsoft.Office.Interop.Excel; 
  9.  
  10. namespace cmdTest 
  11.     class sort 
  12.     { 
  13.         public static void Sort(object[] sortArray,CompareModel model) 
  14.         { 
  15.             for (int i = 0; i < sortArray.Length; i++) 
  16.             { 
  17.                 for (int j = i + 1; j < sortArray.Length; j++) 
  18.                 { 
  19.  
  20.                     if (model(sortArray[j],sortArray[i])) 
  21.                     { 
  22.                         object tmp = sortArray[j]; 
  23.                         sortArray[j] = sortArray[i]; 
  24.                         sortArray[i] = tmp; 
  25.                     } 
  26.                 } 
  27.             } 
  28.              
  29.         } 
  30.     } 
  31.     delegate bool CompareModel(object left,object right); 
  32.  
  33.  
  34.     class Tickets 
  35.     { 
  36.  
  37.         public Tickets(string tkName,decimal tkmoney)  
  38.         { 
  39.             this.money = tkmoney; 
  40.             this.tkName = tkName; 
  41.         } 
  42.  
  43.         private string tkName; 
  44.  
  45.  
  46.         public string TkName 
  47.         { 
  48.             get { return tkName; } 
  49.             set { tkName = value; } 
  50.         } 
  51.         private decimal money; 
  52.  
  53.  
  54.         public decimal Money 
  55.         { 
  56.             get { return money; } 
  57.             set { money = value; } 
  58.         } 
  59.  
  60.         public override string ToString() 
  61.         { 
  62.             return this.tkName + ":" + this.money + "\n"
  63.         } 
  64.  
  65.         public static bool Comparetk(object lef,object rig)  
  66.         { 
  67.             Tickets l = lef as Tickets; 
  68.             Tickets r = rig as Tickets; 
  69.  
  70.             return l.Money > r.Money; 
  71.         } 
  72.  
  73.  
  74.     } 
  75.  
  76.  
  77.     class Program 
  78.     { 
  79.         static void Main(string[] args) 
  80.         { 
  81.  
  82.             #region 利用委託實現任意排序 
  83.  
  84.             Tickets[] tkArray ={ 
  85.                 new Tickets("1st ticket",1000) 
  86.                 ,new Tickets("2nd ticket",3042) 
  87.                 ,new Tickets("3rd ticket",32) 
  88.             }; 
  89.  
  90.             for (int i = 0; i < tkArray.Length; i++) 
  91.             { 
  92.                 Console.WriteLine(tkArray[i].ToString());  
  93.             } 
  94.             Console.WriteLine("after sort"); 
  95.  
  96.             sort.Sort(tkArray, new CompareModel(Tickets.Comparetk)); 
  97.  
  98.             for (int i = 0; i < tkArray.Length; i++) 
  99.             { 
  100.                 Console.WriteLine(tkArray[i].ToString()); 
  101.             } 
  102.             Console.ReadKey(); 
  103.  
  104.  
  105.  
  106.             #endregion 
  107.  
  108.  
  109.  
  110.  
  111.  
  112.         } 
  113.  
  114.  
  115.     } 

 

委託真是很過癮,好像很高級的樣子,哈哈。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章