我有一個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