精選文章

網站搬遷

 Hello all, 許久沒有寫部落格的習慣,未來會持續地在  https://alanzhan.dev/  更新

[C#] 比較兩個物件是否相等

我有兩個物件 A 與 B
都是同一個類別
但是A.Equals(B);
得到的答案卻是 False! WTF?

摁... 結果果然是False

那應該如何才能比較兩個物件?
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/how-to-define-value-equality-for-a-type
簡單來說要複寫 Equals 跟 GetHashCode 方法

那來改動一下程式碼

摁!很棒 得到的結果是True了!
但是... 如果我之後新增了一個屬性
我不就可能改寫 GetHashCode 或者 Equals 方法嗎?

那我們可以改實作 IEqualityComparer 介面
但是我每多一個類別,就要多寫一次?
有沒有更懶惰的方案啊?

於是我翻到了 余小章的文章
[C#.NET] 利用序列化 比較兩物件是否相等

我們再改寫一下

跑了一下結果是True!開勳 打完收工!
我們再把方法弄成擴充方法!
以後要比較兩個物件的時候,就可以很方便的使用了呢!



以上如果有誤再麻煩各位留言了!

留言

這個網誌中的熱門文章