先上源代碼
using那裏多了很多東西,沒用的可以去掉。(平時實驗用的,所以不知道搞了什麼,沒注意刪除)
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Data.OleDb;
- using cmdTest.DB;
- using Model;
- using System.Data;
- using Microsoft.Office.Interop.Excel;
- namespace cmdTest
- {
- class sort
- {
- public static void Sort(object[] sortArray,CompareModel model)
- {
- for (int i = 0; i < sortArray.Length; i++)
- {
- for (int j = i + 1; j < sortArray.Length; j++)
- {
- if (model(sortArray[j],sortArray[i]))
- {
- object tmp = sortArray[j];
- sortArray[j] = sortArray[i];
- sortArray[i] = tmp;
- }
- }
- }
- }
- }
- delegate bool CompareModel(object left,object right);
- class Tickets
- {
- public Tickets(string tkName,decimal tkmoney)
- {
- this.money = tkmoney;
- this.tkName = tkName;
- }
- private string tkName;
- public string TkName
- {
- get { return tkName; }
- set { tkName = value; }
- }
- private decimal money;
- public decimal Money
- {
- get { return money; }
- set { money = value; }
- }
- public override string ToString()
- {
- return this.tkName + ":" + this.money + "\n";
- }
- public static bool Comparetk(object lef,object rig)
- {
- Tickets l = lef as Tickets;
- Tickets r = rig as Tickets;
- return l.Money > r.Money;
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- #region 利用委託實現任意排序
- Tickets[] tkArray ={
- new Tickets("1st ticket",1000)
- ,new Tickets("2nd ticket",3042)
- ,new Tickets("3rd ticket",32)
- };
- for (int i = 0; i < tkArray.Length; i++)
- {
- Console.WriteLine(tkArray[i].ToString());
- }
- Console.WriteLine("after sort");
- sort.Sort(tkArray, new CompareModel(Tickets.Comparetk));
- for (int i = 0; i < tkArray.Length; i++)
- {
- Console.WriteLine(tkArray[i].ToString());
- }
- Console.ReadKey();
- #endregion
- }
- }
- }
委託真是很過癮,好像很高級的樣子,哈哈。