c# - 将集合返回为只读

标签 c# .net multithreading collections concurrency

我在维护信息集合的多线程环境中有一个对象,例如:

public IList<string> Data 
{
    get 
    {
        return data;
    }
}

我目前有 return data;ReaderWriterLockSlim 包装,以保护集合免受共享违规。但是,可以肯定的是,我想将集合返回为只读,这样调用代码就无法对集合进行更改,只能查看已经存在的内容。这是可能吗?

最佳答案

如果您的基础数据存储为列表,您可以使用 List(T).AsReadOnly方法。
如果你的数据可以枚举,可以用Enumerable.ToList方法将您的集合转换为 List 并对其调用 AsReadOnly。

关于c# - 将集合返回为只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55502/

相关文章:

c# - 删除大数据集的关闭点 C#

c - C程序中的多线程

c++ - 这个简单的 C++ 程序是多线程的吗?

c# - 获取特定语言的区域信息

c# - 使用 ServiceStack.OrmLite 如何添加具有默认值的 bool 列?

c# - Show 和 ShowDialog 将不起作用

c# - 在 C# 中测试值是否为数字的正确方法

c# - 如何使用 NUnit 在 C# 中对线程安全通用列表进行单元测试?

c# - 在 QnA azure 机器人中嵌入链接

c# - JavaScript 未定义属性