我有一个Customer类。继承相等比较器
public class Customer
{
private string _id;
private string _name;
// some more properties follow
我继承了EqualityComparer表单MyEqualityComparer(Customer)。
这我打算在LINQ查询中使用。
MyEqualityComparer用于在两个对象之间进行部分检查。
如果customer.id和customer.name匹配,我将对象视为相等。
public class MyComparer : System.Collections.Generic.EqualityComparer<Customer>
{
public override bool Equals(Customer x, Customer y)
{
if (x.Id == y.Id && x.Name == y.Name)
return true;
else
return false;
}
public override int GetHashCode(Customer obj)
{
return string.Concat(obj.Id,obj.Name).GetHashCode();
}
}
我提到generating hashcode。
我很不确定如何连接字符串并将其用作散列码。
这是安全的,我正在尝试做什么?
小错误 - 在与null比较之前,您需要将x和y转换为对象。请参阅http://msdn.microsoft.com/en-us/library/ms173147 – Thracx 2012-11-24 23:32:08