我使用此代码将一个2D数组复制到另一个2D数组:
Array.Copy(teamPerformance, 0,tempPerformance,0, teamPerformance.Length);
但是,当我更改tempPerformance
中的某些数据时,这些更改也适用于teamPerformance
我应该怎么做才能控制它?
答案 0 :(得分:30)
你需要克隆()
QUOTE_ALL
答案 1 :(得分:14)
这是正确的:Array.Copy
执行浅副本,因此内部维度内的数组实例将通过引用进行复制。您可以使用LINQ制作副本,如下所示:
var copy2d = orig2d.Select(a => a.ToArray()).ToArray();
答案 2 :(得分:2)
根据MS(http://msdn.microsoft.com/en-us/library/z50k9bft.aspx):
如果sourceArray和destinationArray都是引用类型数组或者都是Object类型的数组,则执行浅复制。数组的浅表副本是一个新数组,包含与原始数组相同元素的引用。不复制元素本身或元素引用的任何内容。相反,Array的深层副本会复制元素以及元素直接或间接引用的所有内容。