从Dictionary中获取值的方法,如果不存在则创建一个值

时间:2016-08-23 18:19:36

标签: c# dictionary

我有一个词典>。是否有任何函数可以在特定键上获取列表,或者如果列表不存在则创建列表。例如,这不起作用:

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");

但我想检查一下这样的东西是否已经存在。

看起来这是一个骗局,有一个很好的答案:

.NET Dictionary: get or create new

1 个答案:

答案 0 :(得分:0)

您可以创建一个扩展方法,如:

public static void CreateNewOrUpdateExisting<TKey, TValue>(
    this IDictionary<TKey, TValue> map, TKey key, TValue value)
{
    map[key] = value;
}

来源: Method to Add new or update existing item in Dictionary