hojatIzadi Ответов: 2

Как я могу удалить значение в словаре


Привет
Я использовал словарь в своем коде
Dictionary<Int32, Dictionary<Int32, List<Int32>>> Staffs = new  Dictionary<int, Dictionary<int, List<int>>>();

затем добавьте ключи
if (!Staffs.Keys.Contains(staff))
               {
                   Staffs.Add(staff, new Dictionary<int, List<int>>());
               }

               if (!Staffs[staff].Keys.Contains(triad))
               {
                   Staffs[staff].Add(triad, new List<int>());
               }

а затем добавить некоторую ценность
...
if (staff == 1 && triad == 1)
                   {
                       triad1 = Staffs[1][1].ToArray(); Array.Sort(triad1);
                       mypoint.Add(newpoint);

                   }

...
Теперь я хочу удалить некоторую ценность из персонала[1][1]
????????????????????????????????????????????????????????
пожалуйста...

Что я уже пробовал:

Я тестирую Staffs[1][1]. RemoveAt(value); но это не сработало

F-ES Sitecore

У вас есть словарь внутри словаря. Вы хотите удалить из основного словаря (Staffs)или словаря, который является значением внутри словаря Staffs?

hojatIzadi

да словарь который является значением внутри словаря сотрудников

Philippe Mori

Очевидно, что вы должны прочитать официальную документацию MSDN, прежде чем задавать тривиальные вопросы.

2 Ответов

Рейтинг:
17

F-ES Sitecore

Dictionary<Int32, Dictionary<Int32, List<Int32>>> Staffs = new Dictionary<int, Dictionary<int, List<int>>>();

Dictionary<Int32, List<Int32>> staffsDataItem = new Dictionary<int, List<int>>();
staffsDataItem.Add(10, new List<int> {11, 12, 13});
Staffs.Add(1, staffsDataItem);

staffsDataItem = new Dictionary<int, List<int>>();
staffsDataItem.Add(20, new List<int> { 21, 22, 23 });
staffsDataItem.Add(200, new List<int> { 201, 202, 203 });
Staffs.Add(2, staffsDataItem);

staffsDataItem = new Dictionary<int, List<int>>();
staffsDataItem.Add(30, new List<int> { 31, 32, 33 });
Staffs.Add(3, staffsDataItem);

// delete the entire Staffs "3" item
Staffs.Remove(3);

// delete the "20" item from the Staffs "2" item

Staffs[2].Remove(20);
    Console.ReadLine();
}


Рейтинг:
0

OriginalGriff

Используйте Словарь (TKey, TValue).Удалить Метод (TKey) (System.Коллекции.Общий)[^]
В вашем случае это было бы:

Staffs[1].Remove(1);


hojatIzadi

спасибо и извините я хочу удалить значение int из списка которое является Tvalue во внутреннем словаре

OriginalGriff

Ах! Это просто означает дальнейший индекс:

Штабы[1][1]. удалить (listValue);