public override int GetHashCode() { unchecked // disable overflow, for the unlikely possibility that you { // are compiling with overflow-checking enabled int hash = 27; hash = (13 * hash) + Position.GetHashCode(); hash = (13 * hash) + Velocity.GetHashCode(); hash = (13 * hash) + Acceleration.GetHashCode(); hash = (13 * hash) + Lifespan.GetHashCode(); hash = (13 * hash) + Mass.GetHashCode(); hash = (13 * hash) + BodySize.GetHashCode(); hash = (13 * hash) + HistoryLength.GetHashCode(); hash = (13 * hash) + InitialVelocitySet.GetHashCode(); hash = (13 * hash) + Orientation.GetHashCode(); return(hash); } }