字典GetHashCode不一致

时间:2010-02-19 12:40:08

标签: c#

我正在使用这个哈希进行数据检索,但数据检索非常统一,有时候我得到的数据不到200毫秒,有时甚至超过一秒。 可以给我一些建议吗

public override int GetHashCode()

{

return   
this.DomainID.GetHashCode() *(851) *    
(this.A.HasValue ? this.A.GetHashCode() : 1) * (851) *    
((this.C != null ? this.C.ToLower().GetHashCode() : 1)^     
(this.Ap != null ? this.Ap.ToLower().GetHashCode() : 1) * (851) *    
(this.Ks != null ? this.Ks.ToLower().GetHashCode() : 1)) *  
(this.Le != null ? Le.ToLower().GetHashCode() : 1);

}

2 个答案:

答案 0 :(得分:1)

乍一看,代码本身看起来还不错,但我们看不到很多东西。例如,DomainID,A,C,Ap,Ks和Le是什么类型的?他们的GetHashCode方法是如何实现的?

答案 1 :(得分:0)

这可能表明您的一个条件比其他条件慢。也许ToLower()是一个昂贵的调用,取决于其中的值为null