通常当你创建一个 Dictionary<Tkey, TValue>
您必须首先通过在字典本身上调用 add 来添加 k/v 对。
我有一个 Dictionary<string, mycontainer>
其中 mycontainer
是其他对象的容器。我需要能够快速向 mycontainer 添加东西,所以我想也许我可以重载下标 operator[]
创建一个 mycontainer
即时如果它不存在然后允许我直接调用添加它,这样:
mydictionnary["SomeName"].Add(myobject);
每次字典中不存在具有所述名称的容器时,无需明确地去创建 mycontainer。
我想知道这是个好主意还是我应该显式创建新的 mycontainer 对象?
最佳答案
你应该创建自己的类来包装 Dictionary<TKey, List<TItem>>
.
索引器看起来像这样:
public List<TItem> this[TKey key] {
get {
List<TItem> retVal;
if (!dict.TryGetValue(key, out retVal))
dict.Add(key, (retVal = new List<TItem>(itemComparer)));
return retVal;
}
}
关于c# - 使用 operator[] 即时创建字典项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6264794/