public override int GetHashCode() { unchecked { var hashCode = (int)Type; hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (PosterUrl != null ? PosterUrl.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Description != null ? Description.GetHashCode() : 0); var hash = 17; foreach (var schedule in Schedules) { hash *= 23; hash += schedule.GetHashCode(); } hashCode = (hashCode * 397) ^ (Schedules != null ? hash : 0); hashCode = (hashCode * 397) ^ (SourceUrl != null ? SourceUrl.GetHashCode() : 0); return(hashCode); } }