Enumerable.Repeat()会进行深度复制吗?

15

如果我使用以下代码:

  var myList = Enumerable.Repeat(myCustomObject, 2);

在列表中,第二个元素是否是第一个元素的深拷贝?

注意:myCustomObject可以是任何对象。

编辑:在处理自定义对象时,使用Enumerable.Repeat的潜在用途是什么?

谢谢


有人能给我一个例子吗?在处理自定义对象时,Enumerable.Repeat 有何用处?谢谢。 - Mahesh Velaga
你所说的“处理自定义对象”是什么意思? - Thomas Levesque
我只想知道何时使用Enumerable.Repeat可能有用。 - Mahesh Velaga
Mahesh,我发现Enumerable.Repeat(myCustomObject,0)。ToList()是创建List <T>的有效方法,其中T是我想要插入动态内容的匿名类型,用于构建小部件类的方式,当我还不准备好创建完整的类时。 - fdfrye
2个回答

15
不,Enumerable.Repeat实际上在返回的可枚举集合中重复相同的引用 - 它不是一个副本。(通过Reflector验证)
-Oisin

8
不,Enumerable.Repeat只会重复引用,它不会复制对象(除非它是值类型)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接