将PropertyInfo用作字典键

3
我验证了 GetHashCode 和 Equals 允许 PropertyInfo 用作字典键。(具体来说,哈希码相同且 Equals 返回 true。) 那么,使用 PropertyInfo 作为字典键是安全的吗?是否有我不知道的东西使它们不适合作为字典键?基本上,我正在尝试通过 lambda 表达式引用属性,如此处所述(获取属性名称和类型使用 lambda 表达式),并希望缓存我的结果。

你是否只使用了 PropertyInfo 的一部分?我不明白当你很可能会更改 Property 中的某些内容,从而改变哈希值时,返回值如何保持不变。 - Bit
我会在Code Review上发布一个带有代码示例的帖子。 - LarsTech
2
我认为您已经基本上回答了这个问题,我不明白为什么它不能工作。确实,Dictionary使用了GetHashCodeEquals方法,如果它们返回所需的值,则应该可以工作... 您有任何原因不敢这样做吗? - Steven Jeuris
1个回答

3

PropertyInfo可以用作字典的键,唯一的性能损失可能是在获取用于字典的PropertyInfo时如何处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接