今天我們建立了一個如下的類別:
public class People
{
private int age = 0;
private string name = string.Empty;
public int Age
{
get { return age; }
set
{
if ( age >= 0 )
age = value;
}
}
public string Name
{
get { return name; }
set { name = value; }
}
}
如果我們希望能夠使用Array.Sort()來排序此資料形態的陣列
ex:
People[] peoples = new People[5];
Array.Sort(peoples);
此時會出現 "無法比較陣列中的兩個元素。" 的例外
因為我們並沒有指定要排序的條件
例如是照age或是name來排序
因此我們必須讓People類別實做 System.IComparable
實作後的類別如下:
public class People:System.IComparable
{
//內容完全與前面相同,在此省略
#region IComparable<People> 成員
//多實做了此方法
int IComparable<People>
{
return this.Age.CompareTo(other.Age); //這裡我們選擇以Age做為排序為基準
}
#endregion
}
沒有留言:
張貼留言