目前我使用下面的类作为我对通过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