gpt4 book ai didi

c# - 为什么我们在IEqualityComparer中实现GetHashCode?

转载 作者:太空狗 更新时间:2023-10-30 00:34:26 25 4
gpt4 key购买 nike

我想在 C# 中使用 IEqualityComparer 接口(interface)从 List 中获取不同的项目。但是我不知道 GetHashCode。我已经实现了 GetHashCodeEquals 方法。以及如何调用 Equals 方法从具有用户定义数据类型的列表中获取不同的项目。

最佳答案

您可以使用 Distinct将您的自定义相等比较器传递给它的扩展方法。

你需要GetHashCode()的原因是没有它你需要 O(n^2)比较。与 GetHashCode()这些项目可以分为桶,这导致 O(n)一个好的哈希实现。

如果项目类型是你自己的,你可以覆盖EqualsGetHashCode在类型本身而不是创建 IEqualityComparer<T>

关于c# - 为什么我们在IEqualityComparer中实现GetHashCode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com