Заполнение словаря словарей

Не могу заполнить словарь словарей.

           (имя,           (индекс услуги, и значение услуги(true/false)))    
Dictionary<string, Dictionary<int,bool>> du = new Dictionary<string, Dictionary<int, bool>>(); 
            for (int j = 0; j < ListBox.Items.Count; j++)
                {
                    for (int i = 0; i < CheckBox.Items.Count; i++)
                           du.Add(ListBox.Items[j].ToString(), new Dictionary<int, bool> {[i] = CheckBox.GetItemChecked(i)});
                }

Понимаю что ошибка в du.Add(ListBox.Items[j].ToString(), new Dictionary<int, bool> {[i] = CheckBox.GetItemChecked(i)});, так как я заполняю уже заполненный ключ ListBox.Items[j].ToString() Но проблема в том что мне необходимо за одним именем зафиксировать несколько услуг и их значение. Каким образом можно выкрутиться из этой ситуации? Заранее благодарен за помощь!


Ответы (1 шт):

Автор решения: Igor
string duKey = ListBox.Items[j].ToString();
if (!du.ContainsKey(duKey))
  du[duKey] = new Dictionary<int, bool>();
du[duKey].Add(i, CheckBox.GetItemChecked(i));

Вариант VladD (спасибо):

string duKey = ListBox.Items[j].ToString();
if (!du.TryGetValue(duKey, out var v))
    du[key] = v = new Dictionary<int, bool>();
v.Add(i, CheckBox.GetItemChecked(i));
→ Ссылка