我在维护信息集合的多线程环境中有一个对象,例如:
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/