我在C#的哈希映射中使用了這個函數,像類「Dictionary」。有三個Int16值的C#GetHashCode?
x,y和z是Int16。
public override int GetHashCode()
{
return (x << 16) | (UInt16)y;
}
我怎麼能擴展到使用所有3個變量?
與任意數量的任何類型的變量,甚至在更一般的情況見What is the best algorithm for an overridden System.Object.GetHashCode?。
請,請不要使用接受的答案。在上面的重複問題中使用答案!接受的問題是無止境的(傾向於0,傾向於0xffff ...,不同對象的散列相同,散列不平衡等)。 – Oliver
對於Int32中的三個Int16不可避免的不同的對象不具有相同的代碼? – alan2here