【问题标题】:Using PropertyInfo as dictionary key使用 PropertyInfo 作为字典键
【发布时间】:2013-07-25 22:03:20
【问题描述】:

我验证 GetHashCode 和 Equals 允许 PropertyInfo 用作字典键。 (具体来说,哈希码相同,Equals返回true。)

那么,使用 PropertyInfo 作为字典键是否安全?有什么我不知道的东西使它们不适合作为字典键吗?

基本上,我正在尝试通过此处描述的 lambda 表达式引用属性 (Get property name and type using lambda expression),并且我希望缓存我的结果。

【问题讨论】:

  • 您使用的是 PropertyInfo 的一部分吗?当您最有可能更改属性中的某些内容进而更改哈希值时,我看不出返回值如何相同。
  • 我将在Code Review 发布此代码示例。
  • 我认为您自己已经回答了这个问题,我不明白为什么它不起作用。确实,Dictionary 使用 GetHashCodeEquals,如果它们返回所需的值,它应该可以工作......有什么原因导致你不安全地这样做失败?

标签: c# reflection


【解决方案1】:

PropertyInfo 可以用作字典的键,唯一的性能损失可能是您将如何获取用于字典使用的 propertyinfo。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-29
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多