реализация equals () и gethashcode () Методы для пользовательских классов: Практический пример
переоценки Equals () и gethashcode () В пользовательских классах имеет решающее значение для обеспечения правильного сравнения объектов и хэширования. Эта статья демонстрирует правильный способ реализации этих методов для вашего класса рекомендации, чтобы включить его использование с помощью LINQ, кроме () Метода. (), вам необходимо предоставить пользовательскую реализацию, которая сравнивает объекты на основе их уникальных свойств. В вашем случае свойство ReformationID является подходящим идентификатором. Вот исправленная реализация:
public override bool equals (объект obj) { var item = obj как рекомендацияда; if (item == null) { вернуть ложь; } вернуть this.recommendationId.equals (item.recommendationId); }
реализация gethashcode ()
public override bool Equals(object obj) { var item = obj as RecommendationDTO; if (item == null) { return false; } return this.RecommendationId.Equals(item.RecommendationId); }
public переопределить int gethashcode () { вернуть this.recommendationId.gethashCode (); } ]
использование с linq, кроме ()
public override int GetHashCode() { return this.RecommendationId.GetHashCode(); }
var list1 = new List { / * ... * /}; var list2 = новый список { / * ... * /}; var result = list1.excte (list2);
примечание:обязательно проверьте на наличие нулевых значений и используйте правильный корпус для свойств и методов.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3