c# – 我们什么时候为字典做GetHashCode()?

前端之家收集整理的这篇文章主要介绍了c# – 我们什么时候为字典做GetHashCode()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用了Dictionary(TKey,TValue),用于许多目的.但是我没有遇到任何实现GetHashCode()的场景,我相信这是因为我的键是像int和string这样的主要类型.
当我们使用一个自定义对象的关键字,从而实现方法GetHashCode()Equals()等)时,我很想知道这些场景(真实世界的例子).

而且,使用自定义对象的关键是否需要实现这些功能

解决方法

只要默认值为 Object.Equals(参考相等性的测试)都不够,您应该覆盖Equals和GetHashCode.例如,当键的类型是自定义类型时,即使在不同于自定义类型的实例的情况下,也需要将两个关键字视为相等.

例如,如果你的密钥很简单

class Point {
    public int X { get; set; }
    public int Y { get; set; }
}

并且如果他们的X相等并且他们的Y相等,那么你需要两点两点被认为是相等的,那么你将需要重写Equals和GetHashCode.

猜你在找的C#相关文章