我有一个词典>。是否有任何函数可以在特定键上获取列表,或者如果列表不存在则创建列表。例如,这不起作用:
Dictionary<string, List<string>> d = new Dictionary<string, List<string>>();
d["Bob"].Add("Fred");
现在我必须这样做:
Dictionary<string, List<string>> d = new Dictionary<string, List<string>>();
List<string> l = d["Bob"];
if(l == null) { l = d["Bob"] = new List<string>(); }
l.Add("Fred");
我考虑过添加一个扩展方法Get(T key),这样我就可以这样做:
Dictionary<string, List<string>> d = new Dictionary<string, List<string>>();
d.Get("Bob").Add("Fred");
但我想检查一下这样的东西是否已经存在。
看起来这是一个骗局,有一个很好的答案:
答案 0 :(得分:0)
您可以创建一个扩展方法,如:
public static void CreateNewOrUpdateExisting<TKey, TValue>(
this IDictionary<TKey, TValue> map, TKey key, TValue value)
{
map[key] = value;
}