public object DeepClone() { var clone = new MacroPropertyCollection(); foreach (IMacroProperty item in this) { clone.Add((IMacroProperty)item.DeepClone()); } return(clone); }