ホームページ > バックエンド開発 > C++ > 効率的な LINQ Except() のために Equals() と GetHashCode() を正しくオーバーライドする方法

効率的な LINQ Except() のために Equals() と GetHashCode() を正しくオーバーライドする方法

Mary-Kate Olsen
リリース: 2025-01-05 10:54:41
オリジナル
1005 人が閲覧しました

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

カスタム クラスの Equals() と GetHashCode() の正しい実装

RecommendationDTO クラスの LINQ Except() メソッドを効果的に利用するには、Equals() と GetHashCode() をオーバーライドする必要があります。 messages.

Equals() メソッド:

Equals() メソッドは、2 つのオブジェクトが同じ値を持つかどうかを判断します。更新された実装は次のとおりです。

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

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

    return this.RecommendationId.Equals(item.RecommendationId);
}
ログイン後にコピー
  • 最初に、渡されたオブジェクトを RecommendationDTO インスタンスにキャストできるかどうかをチェックします。
  • 成功した場合は、両方のオブジェクトの RecommendationId プロパティを比較します。

GetHashCode()メソッド:

GetHashCode() メソッドは、オブジェクトのハッシュ コードを生成します。これは、オブジェクトの比較と検索を高速化するために使用されます。更新された実装は次のとおりです。

public override int GetHashCode()
{
    return this.RecommendationId.GetHashCode();
}
ログイン後にコピー
  • これは単に RecommendationId プロパティのハッシュ コードを返すだけです。

このように Equals() と GetHashCode() をオーバーライドすることで、 LINQ の Except() メソッドが、RecommendationId に基づいて重複する RecommendationDTO オブジェクトを正確に識別して除外することを保証します。値。

以上が効率的な LINQ Except() のために Equals() と GetHashCode() を正しくオーバーライドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート