1. 程式人生 > >為LINQ實現自定義類的Distinct方法

為LINQ實現自定義類的Distinct方法

如果在LINQ裡要使用自定義類的Distinct方法,如果預設的不管用,(大部分情況不管用),那麼就要自己實現。

根據MSDN建議

1)實現IEquatable<T>介面中的public bool Equals(T other),這個很簡單

但是這個很操蛋,根本就不管用,而且設定斷點也不呼叫這個方法

經過網路反覆研究發現,必須要重寫object類裡的兩個方法:

 public override bool Equals(object obj)  和public override int GetHashCode() 

重寫後發現IEquatable接口才開始其作用,設定斷點也停下來了