目前我使用下面的類作爲我對通過ColumnID
是唯一對象的詞典收集和鍵可爲空SubGroupID
:獲取哈希碼的int和可空<int>對
public class ColumnDataKey
{
public int ColumnID { get; private set; }
public int? SubGroupID { get; private set; }
// ...
public override int GetHashCode()
{
var hashKey = this.ColumnID + "_" +
(this.SubGroupID.HasValue ? this.SubGroupID.Value.ToString() : "NULL");
return hashKey.GetHashCode();
}
}
我想不知怎麼把這個結合到一個64位整數,但我不知道如何處理空SubGroupIDs
。這是據我得到的,但它也不是一個有效SubGroupID
可以爲零:
var hashKey = (long)this.ColumnID << 32 +
(this.SubGroupID.HasValue ? this.SubGroupID.Value : 0);
return hashKey.GetHashCode();
任何想法?
@downvoter - 爲什麼? – Codesleuth 2013-06-11 22:24:46