您可以这样做将一大堆项目一次分组到字典中:
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);
}