1. 程式人生 > >[深入學習C#]——IEqualityComparer中GetHashCode的作用

[深入學習C#]——IEqualityComparer中GetHashCode的作用

總結: 實現IEqualityCompare<T>介面的時候,需要實現Equals()和GetHashCode()兩個方法。實現Equals()方法之後,最好把GetHashCode()方法也實現一下,否則很有可能會出現程式達不到我們想要的效果的情況。

原因: IEqualityComparer<T>介面的實現類主要用在Linq.Distinct<T>()方法中。當程式執行比較的時候,會先行執行GetHashCode()方法比較兩個obj是否同一個引用,如果不是同一個引用,再執行Equals()方法進行比較。