C# 通过属性筛选字典

C# 通过属性筛选字典,c#,C#,我有一个字典,我想通过外部传递属性,但我想限制一些功能,如clear方法。下面是我实现的代码 // dictionary private declaration inside the class private Dictionary<int, string> _value = new Dictionary<int, string>(); // here's the property declaration for access the dictionary outsid

我有一个字典,我想通过外部传递属性,但我想限制一些功能,如clear方法。下面是我实现的代码

// dictionary private declaration inside the class
private Dictionary<int, string> _value = new Dictionary<int, string>();

// here's the property declaration for access the dictionary outside the class
public new Dictionary<int, string> Value
{
    get
    {
        return _value;
    }
    set
    {
        // here is where i'd like to avoid some dictionary features like clear() and give only the opportunity to add or change existing values
        _value = value;
    }
}
//类内的字典私有声明
私有字典_值=新字典();
//下面是访问类外字典的属性声明
公共新字典值
{
得到
{
返回_值;
}
设置
{
//在这里,我希望避免使用一些字典功能,如clear(),而只提供添加或更改现有值的机会
_价值=价值;
}
}
是否可以通过此属性的“集合”来限制字典的某些功能?可能使用switch或if语句?

有一个充当字典包装器的函数,以及相应的IReadOnlyDictionary接口

如果您使用的是.NETCore3,那么还有一个“如果词典永远不需要更改”的问题

如果这是粗粒度的,您总是可以创建自己的包装器,它可以按照您的意愿工作。

有一个作为字典包装器的包装器,以及相应的IReadOnlyDictionary接口

如果您使用的是.NETCore3,那么还有一个“如果词典永远不需要更改”的问题


如果这是粗粒度的,您总是可以创建自己的包装器,它可以按照您的意愿工作。

字典
实现一些不同的接口,例如
IReadOnlyDictionary
-您可以将其作为其中一个(假设其中任何一个满足您的标准)返回,您可以使用并返回一个字典包装,例如从到,并通过重写和抛出异常来禁用包装中不需要的方法。
dictionary
实现了一些不同的接口,例如
IReadOnlyDictionary
-您可以将其作为这些接口之一返回(假设其中任何一个满足您的条件)或者,您可以使用和返回字典包装(例如从到)并通过重写包装中不需要的方法并引发异常来禁用包装中不需要的方法。