Tengo una matriz tipada MyType[] types;
y quiero hacer una copia independiente de esta matriz. Intenté estoC# copiar matriz por valor
MyType[] types2 = new MyType[types.Length] ;
types2 = types ;
pero esto crea una referencia a la primera. Luego intenté
Array.Copy(types , types2 , types.Length) ;
pero tengo el mismo problema: cambiar un valor en la primera matriz también cambia el valor de la copia.
¿Cómo puedo hacer una copia completamente independiente o profunda de un Array, IList o IEnumerable?
Microsoft dice: [se recomienda que ICloneable no se aplicará en API públicas] (http://msdn.microsoft.com/en-us/library/system.icloneable (v = v .110) .aspx) porque no especifica la semántica de copia profunda vs. superficial. Mejor crear una propia interfaz IDeepCopyable. – Wilbert