オペレータのオーバーロードは、次のようにしているので、C#コードで完璧に機能しています。Linqクエリで演算子のオーバーロードが発生する
**
public class HostCode
{
public string Code { get; set; }
public string Name { get; set; }
public static bool operator ==(HostCode hc1, HostCode hc2)
{
return hc1.Code == hc2.Code;
}
public static bool operator !=(HostCode hc1, HostCode hc2)
{
return true;
}
}**
私はHostCodeと呼ばれるCLASを持っており、それが2つのオーバーロードメソッド(「==」のためのものと「!=」の別) が含まれていますそして、私は以下のホストコードのコレクションを作成。
**var hostCodes = new List<HostCode>()
{
new HostCode(){ Code = "1", Name = "sreekanth" },
new HostCode(){ Code = "2", Name = "sajan" },
new HostCode(){ Code = "3", Name = "mathew" },
new HostCode(){ Code = "4", Name = "sachin" }
};**
***var hc = new HostCode() { Code = "1", Name = "sreekanth" };***
***var isEq = hostCodes[1] == hc;***
私は上記のようにしようとしています、それぞれの作業方法は、(この場合には、それは「==」である)HostCodeクラスで焼成。私のカスタムロジックを書くことができるように。
しかし、Iamが以下のようにLinqクエリを試行している場合、それは起動していません。しかし、この場合、同じタイプの2つのオブジェクトを比較することもできます。
**var isEqual = from obj in hostCodes where (HostCode)obj == (HostCode)hc select obj;**
誰もが、私はLINQクエリで2つのオブジェクトを比較することができる方法を見つけるために私を助けてくださいことはできますか?
は、あなたの答えのためにここに行く:あなたがオブジェクトの上と、...あなたはいくつかの特定の平等を使いたい含まれのようないくつかの機能では、いくつかの平等を持っているとき
とされたIEqualityComparer使用量があります – jjnguy
hcはどこから来ますか – msarchet