将一个2D阵列复制到另一个2D阵列

时间:2013-03-31 02:49:51

标签: c# arrays multidimensional-array

我使用此代码将一个2D数组复制到另一个2D数组:

Array.Copy(teamPerformance, 0,tempPerformance,0, teamPerformance.Length);

但是,当我更改tempPerformance中的某些数据时,这些更改也适用于teamPerformance 我应该怎么做才能控制它?

3 个答案:

答案 0 :(得分:30)

你需要克隆()

QUOTE_ALL

答案 1 :(得分:14)

这是正确的:Array.Copy执行副本,因此内部维度内的数组实例将通过引用进行复制。您可以使用LINQ制作副本,如下所示:

var copy2d = orig2d.Select(a => a.ToArray()).ToArray();

这是demo on ideone

答案 2 :(得分:2)

根据MS(http://msdn.microsoft.com/en-us/library/z50k9bft.aspx):

  

如果sourceArray和destinationArray都是引用类型数组或者都是Object类型的数组,则执行浅复制。数组的浅表副本是一个新数组,包含与原始数组相同元素的引用。不复制元素本身或元素引用的任何内容。相反,Array的深层副本会复制元素以及元素直接或间接引用的所有内容。