/// <summary> /// Compares the current <see cref="Track"/> object to the specified object for equivalence. /// </summary> /// <param name="obj">The <see cref="Track"/> object to test for equivalence with the current object.</param> /// <returns> /// <c>true</c> if the two <see cref="Track"/> objects are equal; otherwise, <c>false</c>. /// </returns> public override bool Equals(object obj) { if (obj == null) { return(false); } Track that = obj as Track; if (that == null) { return(false); } return(String.Equals(name, that.name) && String.Equals(comment, that.comment) && String.Equals(description, that.description) && String.Equals(sourceOfData, that.sourceOfData) && Comparer.Equals(trackNumber, that.trackNumber) && String.Equals(trackTypeString, that.trackTypeString) && String.Equals(trackType, that.trackType) && ObjectHelper.AreCollectionsEqual(links, that.links) && ObjectHelper.AreCollectionsEqual(segments, that.segments)); }