日期:2014-05-18  浏览次数:20774 次

关于HashSet<T>的几个问题
1、关于Add方法中的比较方法,为什么我重载了 == 也重写了Equals,还是能添加两个内容一样,引用不一样的对象。
var m = new MyClass(1);
myHashSet.Add( m );  //True
myHashSet.Add(new MyClass(1));  //False

2、MS提供的类库功能非常强,但有许多都用不到,比如对于 集 这个东西,我只需要简单的功能,使用MS提供的会不会影响运行速度和内存,大家遇到这个问题时是不是自己重写啊。

------解决方案--------------------
不是自己写,MS已经做得很好了。
------解决方案--------------------
GetHashCode()
Equals()
这两个是要配对重写的。具体规则见MSDN吧,懒得讲了。