gpt4 book ai didi

c# - 我可以有一个不可变的 IEnumerable<> 吗?

转载 作者:行者123 更新时间:2023-11-30 13:29:32 28 4
gpt4 key购买 nike

我有类似的代码:

class Foo
{
List<Bar> _myList;
...
public IEnumerable<Bar> GetList() { return _myList; }
}

GetList() 的结果应该NOT 是可变的。

澄清一下,修改 Bar 的实例是可以的。
我只是想确保集合本身没有被修改。

我确定我在 SO 上的某个地方读到了一个答案,有人指出这是可能的,但对于我来说,我再也找不到它了。

最佳答案

已经提供的答案绝对可以正常工作,但我只是想补充一点,您可以在 .NET 3.5 中使用 AsReadOnly 扩展方法,如下所示:

class Foo
{
List<Bar> _myList;
...
public ReadOnlyCollection<Bar> GetList() { return _myList.AsReadOnly(); }
}

关于c# - 我可以有一个不可变的 IEnumerable<> 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/641037/

28 4 0