Maison > développement back-end > C++ > Comment remplacer correctement Equals() et GetHashCode() pour un LINQ Except() efficace ?

Comment remplacer correctement Equals() et GetHashCode() pour un LINQ Except() efficace ?

Mary-Kate Olsen
Libérer: 2025-01-05 10:54:41
original
1033 Les gens l'ont consulté

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

Implémentation correcte de Equals() et GetHashCode() pour la classe personnalisée

Pour utiliser efficacement la méthode LINQ Except() pour votre classe RecommendationDTO , vous devrez remplacer les méthodes Equals() et GetHashCode().

Equals() Méthode :

La méthode Equals() détermine si deux objets ont la même valeur. Voici une implémentation mise à jour :

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

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

    return this.RecommendationId.Equals(item.RecommendationId);
}
Copier après la connexion
  • Il vérifie d'abord si l'objet transmis peut être converti en une instance RecommendationDTO.
  • En cas de succès, il compare les propriétés RecommendationId des deux objets.

GetHashCode() Méthode :

La méthode GetHashCode() génère un code de hachage pour un objet. Ceci est utilisé pour une comparaison et une recherche d’objets plus rapides. Voici une implémentation mise à jour :

public override int GetHashCode()
{
    return this.RecommendationId.GetHashCode();
}
Copier après la connexion
  • Elle renvoie simplement le code de hachage de la propriété RecommendationId.

En remplaçant Equals() et GetHashCode() comme ceci, vous assurez-vous que la méthode Except() de LINQ identifiera et exclura avec précision les objets RecommendationDTO en double en fonction de leurs valeurs RecommendationId.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal