Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengatasi Equals() dan GetHashCode() dengan betul untuk LINQ Except() yang Cekap?
Pelaksanaan Equals() dan GetHashCode() yang betul untuk Kelas Tersuai
Untuk menggunakan kaedah LINQ Except() dengan berkesan untuk kelas RecommendationDTO anda , anda perlu mengatasi Equals() dan GetHashCode() kaedah.
Equals() Kaedah:
Equals() kaedah menentukan sama ada dua objek mempunyai nilai yang sama. Berikut ialah pelaksanaan yang dikemas kini:
public override bool Equals(object obj) { var item = obj as RecommendationDTO; if (item == null) { return false; } return this.RecommendationId.Equals(item.RecommendationId); }
GetHashCode() Kaedah:
Kaedah GetHashCode() menjana kod cincang untuk objek. Ini digunakan untuk perbandingan dan carian objek yang lebih pantas. Berikut ialah pelaksanaan yang dikemas kini:
public override int GetHashCode() { return this.RecommendationId.GetHashCode(); }
Dengan mengatasi Equals() dan GetHashCode() seperti ini, anda pastikan kaedah LINQ's Except() akan mengenal pasti dan mengecualikan objek RecommendationDTO pendua dengan tepat berdasarkan nilai RecommendationId mereka.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Equals() dan GetHashCode() dengan betul untuk LINQ Except() yang Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!