„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann ich gleich () und Gethashcode () für die LINQs -Methode ordnungsgemäß überschreiben?

Wie kann ich gleich () und Gethashcode () für die LINQs -Methode ordnungsgemäß überschreiben?

Gepostet am 2025-02-06
Durchsuche:778

How to Properly Override Equals() and GetHashCode() for LINQ's Except() Method?

implementieren EqualS () und Gethashcode () Methoden für benutzerdefinierte Klassen: ein praktisches Beispiel

überschrieben die Methoden Equals () und Gethashcode (). In benutzerdefinierten Klassen ist es entscheidend, um einen ordnungsgemäßen Objektvergleich und Hashing sicherzustellen. Dieser Artikel zeigt den richtigen Weg, um diese Methoden für Ihre Empfehlung zu implementieren, um ihre Verwendung mit linqs außer () Methode zu aktivieren. () müssen Sie eine benutzerdefinierte Implementierung bereitstellen, die die Objekte basierend auf ihren einzigartigen Eigenschaften vergleicht. In Ihrem Fall ist die Empfehlungsgefühl eine geeignete Kennung. Hier ist die korrigierte Implementierung:

public override bool gleich (Objekt obj) { var item = obj als Empfehlung; if (item == null) { false zurückgeben; } return this.recommendationId.equals (item.recommendationId); }

implementieren Gethashcode ()

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

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

    return this.RecommendationId.Equals(item.RecommendationId);
}

public überschreiben int gethashcode () über. { zurückgeben. }

Verwendung mit linq außer ()

public override int GetHashCode()
{
    return this.RecommendationId.GetHashCode();
}

var list1 = new List { / * ... * /}; var list2 = new List { / * ... * /}; var result = list1.except (list2);

Hinweis:

achten Sie auf Nullwerte und verwenden Sie das richtige Gehäuse für Eigenschaften und Methoden.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3