У меня есть типизированный массив MyType[] types;
, и я хочу сделать и независимую копию этого массива. Я пробовал этоC# Копировать массив по значению
MyType[] types2 = new MyType[types.Length] ;
types2 = types ;
но это создает ссылку на первую. Затем я попробовал
Array.Copy(types , types2 , types.Length) ;
, но у меня та же проблема: изменение значения в первом массиве также изменяет значение в копии.
Как я могу сделать полностью независимую или глубокую копию массива, IList или IEnumerable?
Microsoft говорит: [Мы рекомендуем ICloneable не быть реализованы в общественных API,] (http://msdn.microsoft.com/en-us/library/system.icloneable (v = против .110) .aspx), потому что он не задает глубину и семантику неглубокой копии. Лучше создайте собственный интерфейс IDeepCopyable. – Wilbert