我想知道我是否可以创建一个返回只读字典的属性?
例子:
private readonly Dictionary<string, IMyObject> _myDictionary; public Dictionary<string, IMyObject> MyDictionary { get { return _myDictionary; } }
因此不允许使用 MyDictionary 的人添加、删除或更改项目。有什么方法可以做到这一点?
最佳答案
我认为您需要一个包装Dictionary
的类,就像ReadOnlyCollection
包装List
一样。
虽然您找不到执行此操作的默认类,但您会在 this 的一个答案中找到一个实现。问题。
BCL Extras Project也包含这样的实现。它支持创建一个实现了 IDictionary
的代理对象,并且可以代替它使用。
关于c# - 不变的词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1866424/