Dictionary
使用GetHashCode()来检索给定键的哈希码。我遍历整个Dictionary Class
,但没有GetHashCode()
函数的任何定义。它困扰着我,我不知道如何在这堂课中找到它的定义!
假设我正在使用Dictionary<int,int> a = new Dictionary<int,int>()
,那么此结构中给定键的哈希码是什么? (例如,假设:a.Add(123,43)
。如果桶的数量为50,则该密钥的哈希码是什么。
这是Insert()
的{{1}}函数的一部分。
Dictionary class
答案 0 :(得分:3)
如果您未指定IEqualityComparer
,则Dictionary
会使用EqualityComparer<T>.Default
。这是一个只会在给定参数上调用object.GetHashCode
的比较器。请看Int32.GetHashCode
。
答案 1 :(得分:2)
GetHashCode
已在TKey
类型上实施,而非在Dictionary
类上实施。
对于您的示例使用的int.GetHashCode()
,它定义为:
public override int GetHashCode()
{
return this;
}
支持数量与哈希码值无关。