Как удалить определенный элемент из списка словаря - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть словарь

Dictionary <String, List<Object>> myDictionary;

Как лучше всего обновить словарь, чтобы один из объектов из списка был удален известным ключом.Например, я хочу удалить третий объект из списка.
Удалить удалит значение по определенному ключу.Таким образом, он удалит весь список, соответствующий ключу.И я хочу обновить список, который находится внутри словаря.

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

обновить словарь, чтобы один из объектов из списка был удален?

Сначала вам нужно извлечь List из словаря, например, вы можете использовать ключ,Это может быть что-то вроде:

if (myDictionary.TryGetValue("key", out List<Object> value)) {
  value.RemoveAt(2);
}

Вы можете использовать TryGetValue , чтобы получить значение, основанное на вашем ключе (и, если оно существует, вы можете получить ссылку List<object>.

Поскольку ссылка для value в приведенном выше примере - это та же ссылка, которую использует Dictariony<>, вы можете использовать List.RemoveAt (Int32) , чтобы удалить 3-е включение из списка.

0 голосов
/ 15 ноября 2018

Вы можете использовать метод Remove.

myDictionary.Remove("key");

Согласно документации метод возвращает:

true, если элемент успешно найден и удален; иначе ложно. Этот метод возвращает false, если ключ не найден в словаре.

Обновление:

Согласно вашему обновленному вопросу, вы хотите удалить элемент из списка, что означало бы сначала получить значение словаря, а затем изменить элемент внутри этого значения (который в вашем случае является списком). Таким образом, вы можете использовать RemoveAt метод списка там.

List<Object> values;

if (myDictionary.TryGetValue("key", out values))
{
  // Here you have access to the list by using values, therefore you can modify your list here
  // Make sure, that the list really contains an element at index 3
  if (values.Count > 3)
      values.RemoveAt(3);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...