/* * Created by SharpDevelop. * User: admin * Date: 2009/07/28 * Time: 9:01 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; namespace Train.Sort { class Program { public static void Main(string[] args) { Console.WriteLine("Hello World!"); // TODO: Implement Functionality Here //初始化带排序的对象 meArrary[] m_NewArray = new meArrary[3]; m_NewArray[0]=new meArrary("Yongjn-zou",28); m_NewArray[1]=new meArrary("Huzhi-Qiu",26); m_NewArray[2]=new meArrary("jitao-Hu",68); //打印原始对象 ShowData(m_NewArray); //排序 Array.Sort(m_NewArray); Console.WriteLine("*****************"); //再打印对象 ShowData(m_NewArray); Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } private static void ShowData(meArrary[] p_Data) { for(int i=0;i<p_Data.Length;i++) { Console.Write(p_Data[i].ToString()+'/n'); } } } /// <summary> /// 待排序的类 /// </summary> public class meArrary:IComparable //实现了IComparable { private string m_Name; //姓名字段 private int m_Age; //年龄字段 //构造函数,初始化类的名字,年龄 public meArrary(string p_Name,int p_Age) { m_Name=p_Name; m_Age=p_Age; } //自读的名字属性 public string Name { get {return m_Name;} } //自读的年龄字段属性 public int Age { get {return m_Age;} } //复写TOstring方法 public override string ToString() { return string.Format("Name = {0},Age = {1}",m_Name,m_Age); } //关键比较,这里自定义比较规则,可以个字段倒序,正序 public int CompareTo(object obj) { if (obj is meArrary) { meArrary other = (meArrary)obj; return this.Age.CompareTo(other.Age) * (1); //正序排列 //return this.Age.CompareTo(other.Age) * (-1); //倒序排列 } else { throw new ArgumentException("Object is not a Temperature"); } } } } 类中要实现ComparaTo方法~~