Лучший способ добавить элементы в групповой словарь? - PullRequest
0 голосов
/ 17 мая 2018

Вы можете сделать это, чтобы сгруппировать целую группу элементов сразу в словарь:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...