public ITashaHousehold Clone() { Household newH = (Household)MemberwiseClone(); newH.variables = new SortedList <string, object>(); newH.Attach("Maintainer", this["Maintainer"]); newH.Persons = new ITashaPerson[Persons.Length]; for (int i = 0; i < Persons.Length; i++) { Person newPerson = (Person)Persons[i].Clone(); newPerson.Household = newH; newH.Persons[i] = newPerson; } return(newH); }