将项目添加到组词典的最佳方法?

时间:2018-05-17 17:26:31

标签: c# dictionary grouping

您可以这样做将一大堆项目一次分组到字典中:

var dic = data.GroupBy(data => data.groupID).ToDictionary(gdc => gdc.Key, gdc => gdc.ToList());

但是一旦创建了这个结构,最好的方法是什么?

我认为如果该组尚未存在,这样做会产生一个空例外:

dic[newKey].Add(newItem);

所以我认为这是最好的,它看起来不错吗?

static Value GetOrAddNew<Key,Value>(Dictionary<Key,Value> dic, Key key) where Value: new() 
{
    Value ans;
    if(!dic.TryGetValue(key, out ans))
    {
        ans = new Value();
        dic.Add(key, ans);
    }
    return ans;
}

void func()
{
    GetOrAddNew(dic,newkey).Add(newItem);
    //or
    GetOrAddNew(dic,newkey).AddRange(newItems);
}

0 个答案:

没有答案