public ReferenceViewModel Clone() { var copied = (ReferenceViewModel)MemberwiseClone(); copied.Additional = new Dictionary <string, object>(Additional); copied.FullNameInDevLangs = new SortedList <string, string>(FullNameInDevLangs); copied.NameInDevLangs = new SortedList <string, string>(NameInDevLangs); copied.NameWithTypeInDevLangs = new SortedList <string, string>(NameWithTypeInDevLangs); copied.Specs = new SortedList <string, List <SpecViewModel> >(Specs.ToDictionary(s => s.Key, s => new List <SpecViewModel>(s.Value))); return(copied); }