Avatar ·

Clonación profunda de objetos en C#: ¿cómo copiar correctamente un objeto complejo con todas las referencias anidadas?

¡Hola a todos! Soy nuevo en C# y me encontré con un problema al copiar objetos. Tengo una clase `Person` que contiene campos de referencia, por ejemplo, `List
`. Cuando intento hacer una copia mediante asignación simple (`var copy = original;`), los cambios en `copy` afectan a `original`. Entiendo que esto es una copia superficial (shallow copy) y necesito una copia profunda (deep clone). Intenté implementar `ICloneable`, pero crea una copia superficial. Intenté copiar manualmente cada campo, pero es horrible cuando hay muchos objetos y están anidados. Aquí hay un ejemplo de mi código: ```csharp public class Address { public string Street { get; set; } public string City { get; set; } } public class Person { public string Name { get; set; } public int Age { get; set; } public List
Addresses { get; set; } = new List
(); } // Uso: var person1 = new Person { Name = "Iván", Age = 30 }; person1.Addresses.Add(new Address { Street