天天看點

C#中的IComparable和IComparer接口

C#中,自定義類型,支援比較和排序,需要實作IComparable接口。IComparable接口存在一個名為CompareTo()的方法,接收類型為object的參數表示被比較對象,傳回整型值:1表示目前對象大于被比較對象,0表示兩者相等,-1表示目前對象小于被比較對象。

public int CompareTo(object o) {}
           

若想以更加靈活的方式對自定義類進行比較,可以聲明一個繼承自IComparer接口的比較器,實作接口方法Comprae(),接收2個object類型參數作為比較對象,傳回整型值:1表示前者大于後者,0表示兩者相等,-1表示前者小于後者。

public int Compare(object x, object y) {}
           

IComparable是“可比較的”意思,自定義類實作該接口,就具有可比較的功能;IComparer是“比較器”的意思,實作該接口的類就是一個比較器,可以将比較器“注入”類中,使類具有比較和排序的功能。

具體事例可以參考本人以前整理的兩篇博文。

IComparable接口示例代碼

IComparer接口示例代碼

繼續閱讀