以下展示了針對特定的型別排序的實作。
首先訂義類別:
public class MyClass { private int _Value; public int Value { get { return this._Value; } set { this._Value = value; } } private string _Name; public string Name { get { return this._Name; } set { this._Name = value; } } }
定義一個排序時所需要的介面實作。
以下程式碼的關鍵是Return的Value,調整一下程式碼就可以改變排序的結果。
public class MyClassComper : IComparer<MyClass> { public int Compare(MyClass x, MyClass y) { if (x.Value == y.Value) { return 0; } if (x.Value > y.Value) { return 1; } else { return -1; } } }
接下來程式排序主體。
MyClass[] ar = new MyClass[2]; ar[0] = new MyClass(); ar[0].Name = "lei"; ar[0].Value = 2; ar[1] = new MyClass(); ar[1].Name = "jay"; ar[1].Value = 9; ar[2] = new MyClass(); ar[2].Name = "gray"; ar[2].Value = 1; Array.Sort(ar, new MyClassComper());
沒有留言:
張貼留言