gpt4 book ai didi

C# 返回不可修改的列表

转载 作者:行者123 更新时间:2023-12-01 18:00:39 25 4
gpt4 key购买 nike

我有一个类,其中包含 List<Item>我在类上有一个 getter 返回这个。我可以做些什么来确保调用的用户无法修改返回的列表吗? (因为它是引用类型 - 我相信对返回的引用的更改会影响存储在源对象中的列表)

最佳答案

返回用 ReadOnlyCollection<T> 包裹的列表.

  public ReadOnlyCollection<Item> MyROList {
get { return new ReadOnlyCollection<Item>(myList); }
}

private List<Item> myList = new List<Item>();

更多详情elsewhere on SO .

根据类的使用情况,您可以分配 ReadOnlyCollection在构建时并将其链接到底层 List 。如果您期望始终或大部分时间需要此属性,则底层 List当时就到位了,那么这就是明智的。否则你可以离开 ReadOnlyCollection<Item>类(class)成员null如果是 null 则在 getter 中按需分配(考虑到线程安全)。

关于C# 返回不可修改的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3846347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com