【发布时间】:2011-01-04 21:51:39
【问题描述】:
使用这个类
public class Foo
{
public string c1, c2;
public Foo(string one, string two)
{
c1 = one;
c2 = two;
}
public override int GetHashCode()
{
return (c1 + c2).GetHashCode();
}
}
还有这个哈希集
HashSet<Foo> aFoos = new HashSet<Foo>();
Foo aFoo = new Foo("a", "b");
aFoos.Add(aFoo);
aFoos.Add(new Foo("a", "b"));
label1.Text = aFoos.Count().ToString();
我得到了 2 的答案,当然它应该是 1。有没有办法解决这个问题,所以我的 HashSet 只包含唯一的对象?
谢谢,阿什。
【问题讨论】:
-
你没有覆盖
Equals。