Heim > Backend-Entwicklung > C++ > Wie überschreibe ich Equals() und GetHashCode() für effizientes LINQ Except() korrekt?

Wie überschreibe ich Equals() und GetHashCode() für effizientes LINQ Except() korrekt?

Mary-Kate Olsen
Freigeben: 2025-01-05 10:54:41
Original
1005 Leute haben es durchsucht

How to Correctly Override Equals() and GetHashCode() for Efficient LINQ Except()?

Korrekte Implementierung von Equals() und GetHashCode() für benutzerdefinierte Klassen

Um die LINQ Except()-Methode für Ihre RecommendationDTO-Klasse effektiv zu nutzen , müssen Sie Equals() und GetHashCode() überschreiben. Methoden.

Equals()-Methode:

Die Equals()-Methode bestimmt, ob zwei Objekte den gleichen Wert haben. Hier ist eine aktualisierte Implementierung:

public override bool Equals(object obj)
{
    var item = obj as RecommendationDTO;

    if (item == null)
    {
        return false;
    }

    return this.RecommendationId.Equals(item.RecommendationId);
}
Nach dem Login kopieren
  • Es prüft zunächst, ob das übergebene Objekt in eine RecommendationDTO-Instanz umgewandelt werden kann.
  • Bei Erfolg werden die RecommendationId-Eigenschaften beider Objekte verglichen.

GetHashCode() Methode:

Die GetHashCode()-Methode generiert einen Hash-Code für ein Objekt. Dies wird für einen schnelleren Objektvergleich und eine schnellere Suche verwendet. Hier ist eine aktualisierte Implementierung:

public override int GetHashCode()
{
    return this.RecommendationId.GetHashCode();
}
Nach dem Login kopieren
  • Sie gibt einfach den Hash-Code der RecommendationId-Eigenschaft zurück.

Durch das Überschreiben von Equals() und GetHashCode() wie folgt können Sie Stellen Sie sicher, dass die Except()-Methode von LINQ doppelte RecommendationDTO-Objekte basierend auf ihren RecommendationId-Werten genau identifiziert und ausschließt.

Das obige ist der detaillierte Inhalt vonWie überschreibe ich Equals() und GetHashCode() für effizientes LINQ Except() korrekt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage