public Mission DeepCopy() { Mission mission = (Mission)MemberwiseClone(); mission.Name = String.Copy(Name); var pl = PhaseList.Select(mp => new MissionPhase { ID = String.Copy(mp.ID), Name = String.Copy(mp.Name), VisibleTimeExtent = new TimeExtent(mp.VisibleTimeExtent.Start, mp.VisibleTimeExtent.End) }).ToList(); mission.PhaseList = pl; return(mission); }