让Dictionary key 支持自定义对象
让Dictionary key 支持自定义对象,则对象必须继承IEquatable,重写GetHashCode、Equals
class Foo : IEquatable<Foo> {
public string Name { get; set;}
public int FooID {get; set;}
public override int GetHashCode() {
return Name.GetHashCode()+FooID.GetHashCode();
}
public override bool Equals(object obj) {
return Equals(obj as Foo);
}
public bool Equals(Foo obj) {
return obj != null && obj.FooID == this.FooID;
}
}