gpt4 book ai didi

c# - 字典中的组合键;覆盖 GetHashCode()、Equals 等还是使用结构?

转载 作者:太空狗 更新时间:2023-10-30 01:27:40 25 4
gpt4 key购买 nike

我有很多字典,其中键是几个不同值(主要是字符串和整数)的组合。我是将这些键实现为类(并覆盖 GetHashCode()Equals() 等)还是改用 struct

ReSharper 使覆盖变得容易,但代码看起来很糟糕。改用结构对性能有影响吗?

最佳答案

如果您唯一的问题是为 Dictionary<TKey,TValue> 中的使用定义相等性那么您可以选择的另一条路径是实现 IEqualityComparer<T> .这可以手动传递给字典构造函数并处理 TKey 的相等性比较。不修改 key 类型的值。

如果您在为复合值定义相等性时遇到更普遍的问题,那么我会专注于使复合值本身支持相等性。是的,定义平等所必需的全套方法很痛苦,但它主要是样板代码。正确使用它比样板代码看起来是否凌乱更重要。

关于c# - 字典中的组合键;覆盖 GetHashCode()、Equals 等还是使用结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2448274/

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