比較子

比較子について

LINQのメソッドの中には、パラメータとして比較子を受け取るものが多くあります。(「キーの比較には、比較子を使用し」等と説明文に記載されているパラメータのことです。)

比較子とは要するに、2つのオブジェクトが等しいかどうかを判定するためのメソッドのことで、独自の基準でオブジェクトが等しいかどうかを判定したい場合に使用します。

独自の比較子の作り方

「IEqualityComparer<T>」インタフェースをインプリメントしたクラスを作成します。

このインタフェースには、次の2つのメソッドのプロトタイプが定義されていて、クラス側でこの2つのメソッドを実装することになります。

  • Equals
  • GetHashCode

 

Equals()メソッド

Equals()メソッドは文字どおり、2つのオブジェクトが等しいかどうかを判定するためのメソッドです。2つのオブジェクトを引数として受け取り、等しい場合はTrueを、等しくない場合はFalseを返すよう実装します。

 

GetHashCode()メソッド

※ このメソッドの返値は、Equralメソッドでの判定を効率良く行うために使用されるようです。実装が必須かどうか、資料だけでは判断できませんでした。詳細が分かり次第追記します。

 

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です