Visual Studio default implementation for GetHashCode():
class Animal
{
    public int Id { get; set; }
    public override int GetHashCode()
    {
        return 2108858624 + Id.GetHashCode();
    }
}
Why "2108858624" is added to Id for GetHashCode compute?
Video: (Gif)

