我想要一个字典,它可以为不在字典中的任何键返回指定值,例如:
var dict = new DictWithDefValues("not specified");
dict.Add("bob78", "Smart");
dict.Add("jane17", "Doe");
Assert.AreEqual(dict["xxx"], "not specified");
扩展 System.Collections.Generics.Dictionary 和重写 TryGetValue 不起作用,因为 TryGetValue 不是虚拟的。
从头开始重新实现 Dictionary(从 IDictionary)需要付出太多的努力。
扩展方法不会让我用默认值“初始化”字典。我希望字典的消费者认为键就在那里,而不仅仅是做dict.GetOrDefault(key, "not specified");
从头开始重新实现字典(从 IDictionary)需要付出太多努力
这确实是最好的选择。只需封装一个Dictionary<,>
作为班级的成员,并将所有成员传递给字典的代码。在这种情况下,您只需要处理您希望不同的属性和方法。
我同意这是一项有点乏味的工作 - 但打字的时间可能不到 5 分钟,因为每个方法都可以传递到内部字典的实现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)