2010-11-16 22 views

回答

2

不,如果它是一个类,大多数对象,只对同一对象的引用存储在收藏。

如果它是一个值类型,如int,双和结构的副本的情况下(不是一个深拷贝,如果该结构具有对类对象的引用,这又不会被复制)。

编辑:
要深度复制对象,您首先需要创建深度复制功能。
看看Create a Deep Copy in C#How to make a deep copy in C# ?
然后,您可以在将项目添加到集合之前运行深度复制方法。

注意
不是很经常你真的需要一个真正的深层副本。通常最好重新考虑应用程序中的数据流。

+0

,那么如何才能有深刻的复制的集合? – user496949 2010-11-16 10:53:53

1

如果你问什么用收集情况,那么这取决于:

通常情况下,一个集合将与一些“空”插槽来创建的,所以增加不会造成新的集合与新大小被创建。

但如果添加一个新的项目开始这种规模超越,一个新的集合将被创建和所有项目复制到它。


如果你问的是项目本身,再次它取决于:

如果是值类型(INT,双,例如结构),则该值将被复制,如果是一个引用类型,将使用对同一对象的引用的副本。

+0

@Downvoter - 请解释。 – Oded 2010-11-16 13:37:54