AsReadOnly 是否返回集合的副本?

发布于 2024-12-11 19:15:04 字数 133 浏览 0 评论 0原文

我想知道此方法是否返回集合的副本或仅返回 ReadOnlyCollection 的实例,它将以某种方式包装原始集合,而不读取所有引用。

我必须了解它是否会浪费内存空间,它会将所有指针复制到我的实例吗?

感谢您的任何答复。

In would like to know if this method returns a copy of the collection or just an instance of ReadOnlyCollection which will wrap the original collection in some way, without readding all references.

I must understand if it's going to waste memory space, will it copy all pointers to my instances?

Thanks for any answer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

南…巷孤猫 2024-12-18 19:15:04

您可以在这里找到:List(Of T).AsReadOnly Method

要防止对 List(Of T) 进行任何修改,请仅公开 List(Of T)
通过这个包装器。

只读集合只是带有包装器的集合
防止修改集合;因此,如果进行更改
对于底层集合来说,只读集合反映了那些
变化。

此方法的操作时间复杂度为 O(1)。

因为在最后一个声明中,他们说如果您更改源集合,只读集合将反映这些更改,我相信这个包装器不会重新分配任何对象,而是执行您在问题中描述的操作。

as you can find here: List(Of T).AsReadOnly Method

To prevent any modifications to List(Of T), expose List(Of T) only
through this wrapper.

A collection that is read-only is simply a collection with a wrapper
that prevents modifying the collection; therefore, if changes are made
to the underlying collection, the read-only collection reflects those
changes.

This method is an O(1) operation.

since in the last statement they say if you change the source collection the readonly collection will reflect those changes, I believe this wrapper does not re-allocate any object but does what you also described in your question.

风月客 2024-12-18 19:15:04

List 上的 AsReadOnly 方法仅返回现有 List 上的 ReadOnlyCollection 包装器>。它不会复制底层 List

The AsReadOnly method on List<T> just returns a ReadOnlyCollection<T> wrapper over the existing List<T>. It doesn't copy the underlying List<T>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文