HashSet<T>.Add首先比较结果GetHashCode.如果它们是相同的,它会调用Equals.
现在,我的理解是为了实现GetHashCode,必须用对象的字段来完成某些事情.一个简单的示例实现可以在被覆盖的System.Object.GetHashCode的最佳算法是什么?.
在我的测试中,在填充随机数据的1.000.000对对象上进行比较,两者之间的性能或多或少相等.GetHashCode在链接示例中实现,Equals只需调用Equals所有字段.那么为什么要用GetHashCode它Equals?