yul*_*lun 5 .net c# iequalitycomparer
我正在为LINQ distinct表达式编写EqualityComparer,我对GetHashCode重载方法不太确定.以下代码是否正确?Id属性是一个很长的原语.
public int GetHashCode(Deal obj)
{
return ((int)obj.Id) ^ ((int)(obj.Id >> 32)); ;
}
Run Code Online (Sandbox Code Playgroud)
Kir*_*huk 11
可能你应该检查是否obj不为空.如果返回null 0.老实说,longId 的实现与.NET Framework GetHashCode的long数据类型完全相同.换句话说,您可以obj.Id.GetHashCode()在非空检查后调用.