rk2*_*010 3 c# equality hashset
我试图找出C#如何比较HashSet中的对象是否相等.
我在这里找不到任何东西:http://msdn.microsoft.com/en-us/library/bb359438.aspx
只有当我来到计算器,我读它使用equals()和可能的GetHashCode()
无论如何我打算实施这两种方法,但我的问题是:
你会怎么做才能找出HashSet如何实际比较对象?
它使用相似的对象进行比较Equals.它确定将它们放入使用的桶GetHashCode.
更一般地说,HashSet使用IEqualityComparer<T>传入的构造函数来执行这两个操作.如果未指定,则使用EqualityComparer<T>.Default调用对象GetHashCode()和IEquatable<T>.Equals()方法(或者object.Equals()如果类型未实现IEquatable<T>).