2013-07-25 64 views
2

我验证了GetHashCode和Equals允许PropertyInfo用作字典键。 (具体来说,散列码是相同的,并且Equals返回true。)使用PropertyInfo作为字典键码

是否安全?是否将PropertyInfo用作字典键?有什么我不知道,这使得它们不适合作为字典键吗?

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

+0

您是否使用PropertyInfo的一部分?当你最有可能改变属性中的某些东西时,我不会看到返回值是如何变化的,而这又会改变哈希值。 – Bit

+0

我会用代码示例在[代码评论](http://codereview.stackexchange.com/)上发布。 – LarsTech

+2

我想你自己几乎是回答了这个问题,我不明白为什么它不起作用。的确,'Dictionary'使用'GetHashCode'和'Equals',如果这些返回所需的值,它应该可以工作......是否有任何原因会导致你不安全的做这件事? –

回答

2

PropertyInfo可以用作字典的关键字,唯一的性能命中可能是如何获取字典用法的propertyinfo。