public bool has_the_same_value_as(IItinerary the_other_itinerary) { return the_other_itinerary != null && underlying_leg_collection.Equals(the_other_itinerary.associated_legs()); }