1 public class Product
2 {
3 public string Name { get;set;}
4 public int Code { get; set; }
5 }
6 class ProductComparet : IEqualityComparer<Product>
7 {
8 public bool Equals(Product x, Product y)
9 {
10 if (object.ReferenceEquals(x,y))
11 {
12 return true;
13 }
14 if (object.ReferenceEquals(x,null)||object.ReferenceEquals(y,null))
15 {
16 return false;
17 }
18 return x.Code == y.Code && x.Name == y.Name;
19 }
20
21 public int GetHashCode(Product product)
22 {
23 if (object.ReferenceEquals(product, null))
24 {
25 return 0;
26 }
27 int hashProductName = product.Name == null ? 0 : product.Name.GetHashCode();
28
29 int hashProductCode = product.Code.GetHashCode();
30 return hashProductName ^ hashProductCode;
31
32 }
33 }