Ho varie collette osservabili di diversi tipi di oggetto. Mi piacerebbe scrivere un singolo metodo che prenderà una collezione di questi tipi di oggetti e restituirà una nuova collezione in cui ogni elemento è una copia profonda degli elementi nella collezione data. Ecco un esempio di una classe specifcMetodo generico per creare una copia profonda di tutti gli elementi di una raccolta
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;
}
Come posso fare questo metodo generico per qualsiasi classe che implementa ICloneable?
Come giusto avvertimento, non tutte le implementazioni ICloneable sono in realtà copie profonde. –