NAS*_*SER 4 c# equals iequalitycomparer gethashcode
我想List通过使用IEqualityComparer接口从C# 中获取不同的项目。但我不知道GetHashCode. 我已经实现了GetHashCode和Equals方法。以及如何调用Equals方法从具有用户定义数据类型的列表中获取不同的项目。
您可以使用Distinct扩展方法将您的自定义相等比较器传递给它。
你需要的原因GetHashCode()是没有它你需要O(n^2)比较。随着GetHashCode()该项目可分为桶,这导致了O(n)一个良好的散列的实现。
如果项目类型是您自己的,您可以在类型本身中覆盖Equals和GetHashCode,而不是创建一个IEqualityComparer<T>
| 归档时间: |
|
| 查看次数: |
2857 次 |
| 最近记录: |