在c#中,Array.ToArray()执行DEEP拷贝吗?

时间:2012-04-30 16:49:53

标签: c# arrays deep-copy shallow-copy toarray

这应该是一个非常基本的问题,但我找到一个明确的答案时遇到了一些麻烦。

当你有一个值数组并使用.ToArray()方法时,它是否会创建数组的深层或浅层副本?

2 个答案:

答案 0 :(得分:13)

没有

您可以通过编写一个小程序来轻松验证这一点。

答案 1 :(得分:0)

严格来说,a <- rnorm(200) k <- sample(c("red", "green", "blue", "brown"), 200, replace = T) plot(a, type = "h", col = k) 创建一个新的ICollection.ToArray(),并使用T[]将原始集合中的每个元素分配给新数组。

注意:

如果Array.CopyTo()是值类型,则将分配值,而不是引用。这将与人们期望的“深层”副本一样。

T