自定义类的 Equals() 和 GetHashCode() 的正确实现
为您的RecommendationDTO 类有效利用 LINQ except() 方法,您需要重写 Equals() 和 GetHashCode()方法。
Equals() 方法:
Equals() 方法确定两个对象是否具有相同的值。这是更新的实现:
public override bool Equals(object obj) { var item = obj as RecommendationDTO; if (item == null) { return false; } return this.RecommendationId.Equals(item.RecommendationId); }
GetHashCode()方法:
GetHashCode() 方法生成对象的哈希码。这用于更快的对象比较和查找。这是更新的实现:
public override int GetHashCode() { return this.RecommendationId.GetHashCode(); }
通过像这样重写 Equals() 和 GetHashCode(),您可以确保 LINQ 的 except() 方法将根据RecommendationId 值准确识别并排除重复的RecommendationDTO 对象。
以上是如何正确重写 Equals() 和 GetHashCode() 以获得高效的 LINQ except()?的详细内容。更多信息请关注PHP中文网其他相关文章!