public DistrictItemDto DeepClone() { var rtn = new DistrictItemDto(); Copy(this, rtn); return(rtn); }
private void Copy(DistrictItemDto src, DistrictItemDto dst) { dst.Id = src.Id; dst.Name = src.Name; dst.FullName = src.FullName; dst.Position = src.Position; dst.Level = src.Level; dst.Pinyin = src.Pinyin; if (src.Children == null) { return; } var children = new List <DistrictItemDto>(); foreach (var dist in src.Children) { var child = new DistrictItemDto(); Copy(dist, child); children.Add(child); } dst.Children = children; }