运算符重载在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;
}
}**
我有一个名为CLAS和HostCode它包含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查询,它不会触发。但在这种情况下,Iam也会比较两个具有相同类型的对象。
**var isEqual = from obj in hostCodes where (HostCode)obj == (HostCode)hc select obj;**
任何人都可以请帮助我找出一种方法,我可以通过Linq查询比较2个对象吗?
去这里的答案 - HTTP:/ /stackoverflow.com – jjnguy
hc从哪里来 – msarchet