在想知道,如果这个方法返回集合或只是ReadOnlyCollection的实例,将包裹原始集合在某种程度上的副本,没有readding所有引用。AsReadOnly是否返回集合的副本?
,如果它要浪费存储空间,将其所有的指针复制到我的情况,我必须明白吗?
感谢您的任何答复。
在想知道,如果这个方法返回集合或只是ReadOnlyCollection的实例,将包裹原始集合在某种程度上的副本,没有readding所有引用。AsReadOnly是否返回集合的副本?
,如果它要浪费存储空间,将其所有的指针复制到我的情况,我必须明白吗?
感谢您的任何答复。
,你可以在这里找到:List(Of T).AsReadOnly Method
为了防止名单(Of T)已进行任何修改,只能通过 此包装暴露名单(共T)。
其是只读的是简单地用一个包装 ,其防止修改集合的集合的集合;因此,如果对基础集合进行了更改 ,只读集合反映了这些更改 。
此方法是O(1)的操作。
因为在最后的陈述,如果你改变源收集他们说只读集合将反映这些变化,我相信这个包装不重新分配任何对象,但做什么,你还在你的问题描述。
AsReadOnly
方法List<T>
只是返回一个ReadOnlyCollection<T>
包装在现有的List<T>
。它不复制底层List<T>
什么是浪费空间不是指针的副本,而是指向/引用的对象的副本... ;-) –
http://msdn.microsoft.com/en-us /library/e78dcd75.aspx“是只读的是简单地防止包装集合的集合..” – wiero
有时候,你只需要阅读文档:-) – GianT971