int FindEntry(object key)
{
var hashCode = key.GetHashCode() & Int32.MaxValue;
var modHashCode = hashCode % buckets.Length;
for (var i = buckets[modHashCode]; i >= 0; i = entries[i].Next)
{
if (entries[i].HashCode == hashCode && entries[i].Key.Equals(key))
return i;
}
return -1;
}