Tengo varios ObservableCollections de diferentes tipos de objetos. Me gustaría escribir un único método que tome una colección de cualquiera de estos tipos de objetos y devolver una nueva colección donde cada elemento sea una copia profunda de los elementos en la colección dada. Este es un ejemplo de una clase specifcMétodo genérico para crear una copia en profundidad de todos los elementos en una colección
private static ObservableCollection<PropertyValueRow> DeepCopy(ObservableCollection<PropertyValueRow> list)
{
ObservableCollection<PropertyValueRow> newList = new ObservableCollection<PropertyValueRow>();
foreach (PropertyValueRow rec in list)
{
newList.Add((PropertyValueRow)rec.Clone());
}
return newList;
}
¿Cómo puedo hacer que este método genérico para cualquier clase que implementa ICloneable?
Como advertencia, no todas las implementaciones de ICloneable son en realidad copias en profundidad. –