你的代码写法有问题而已...
dictionary可以foreach,但不能foreach的同时删除,不然会报错
同理类似数组一样,for循环的时候,删了一个元素,会导致索引超出
以下为正确写法
[C#] 纯文本查看 复制代码 // 假设要删除值为 "value" 的键值对
Dictionary<string, string> dict = new Dictionary<string, string>();
// 添加一些元素
dict.Add("key1", "value1");
dict.Add("key2", "value2");
dict.Add("key3", "value3");
// 使用迭代器进行遍历
var keysToRemove = new List<string>();
foreach (var pair in dict)
{
if (pair.Value == "value")
{
keysToRemove.Add(pair.Key);
}
}
// 删除需要删除的键
foreach (var key in keysToRemove)
{
dict.Remove(key);
}
|