更改字典键的值

时间:2013-12-26 13:00:31

标签: c# .net

我有一个字符串列表。

我想删除其中一个:

  settings.RecentSearches.Keys.Remove(itemToAdd.Key);
  settings.RecentSearches.Keys.Add(itemToAdd.Key);

错误:

Mutating a key collection derived from a dictionary is not allowed.

我想在其中添加和删除值。

我该怎么办?

4 个答案:

答案 0 :(得分:6)

您无法从字典的键集合中删除项目。您必须使用Dictionary.Remove从字典中删除该项目。

答案 1 :(得分:1)

嗯,我不是C#背景人。我建议你可以帮助你的一个想法,

  1. 创建字典的类字典或子类。
  2. 将您的键值保存在临时变量中。
  3. 直接从词典中删除您的密钥。
  4. 添加新密钥并在其下设置临时变量保存值 那把钥匙。

答案 2 :(得分:1)

问题是你使用的是Keys.Add和Keys.Remove,而不是Dictionary本身的.Add和.Remove方法。

settings.RecentSearches.Remove(itemToAdd.Key);
settings.RecentSearches.Add(itemToAdd.Key);

答案 3 :(得分:1)

删除

settings.RecentSearches.Remove(itemToAdd.Key);


添加   settings.RecentSearches [itemToAdd.Key] = itemToAdd.Value;

如果密钥已经不存在,这将把密钥添加到字典中。如果密钥已存在,则将覆盖该值。为了避免,覆盖,请进行if检查。