c# - 不变的词典

标签 c# .net

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

例子:

    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/

相关文章:

c# - 为什么没有文化枚举?

c# - 异步处理 WaitForExit 并获取返回值

c# - 将 C# 项目引用放在子文件夹中

c# - 建立。在构建之前创建 EmbeddedResource

c# - 通话模棱两可的错误-骰子游戏

.net - 使用 Directory.Build.Prop 为 .NET Framework 添加包

.net - SQL Server 是否会在连接丢失时自动回滚更改?

c# - 无法在 Visual Studio 2008 中创建 list 资源名称错误

c# - WPF UI 在事件触发时挂起

.net - 如何查明我的 WCF 服务器何时退出(并关闭它的 TCP 连接)