我正在尝试实现一个MultiDictionary:一个在每个键中保存列表的词典。
我希望能够使用加法赋值运算符和索引器向字典中添加元素:
myMultiDictionary[key] += elementToAdd;
我首先创建了一个继承自List并重载+
和-
操作符的自定义AddableList,这使我能够使用加法赋值运算符:
myAddableList += elementToAdd;
MultiDictionary只是
Dictionary<keyType, AddableList<contentType>>
的简单继承。我在索引器方面遇到了问题。我希望保留Dictionary的继承以使用字典键的O(1)性能。但是,我必须重新定义索引器:
- 如果我创建一个新键,则创建一个空列表;
- 如果我删除列表中的所有元素,则删除键。