不变的字典

Car*_*rra 4 .net c#

我想知道我是否可以创建一个返回只读字典的属性?

例:

    private readonly Dictionary<string, IMyObject> _myDictionary;
    public Dictionary<string, IMyObject> MyDictionary
    {
        get { return _myDictionary; }
    }
Run Code Online (Sandbox Code Playgroud)

因此,不允许使用MyDictionary的人添加,删除或更改项目.有什么方法可以做到这一点?

luv*_*ere 7

我认为你需要一个DictionaryReadOnlyCollection包裹一样包裹的类List.

虽然您找不到执行此操作的默认类,但您可以在问题的答案之一中找到实现.

BCL额外项目也包含这样的实现.它支持创建一个代理对象,该对象实现IDictionary并可以在其位置使用.