Заполнение словаря словарей
Не могу заполнить словарь словарей.
(имя, (индекс услуги, и значение услуги(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));