bri*_*342 2 c# asp.net dictionary exception
我正在尝试搜索字典以查看它是否具有某个值,如果是,则更改它.这是我的代码:
foreach (var d in dictionary)
{
if (d.Value == "red")
{
d.Value = "blue";
}
}
Run Code Online (Sandbox Code Playgroud)
在visual studio中,当我逐步调试代码时,我可以看到它改变了值,然后当它到达foreach循环再次重复它会抛出异常
"集合已被修改;枚举操作可能无法执行"
我该如何解决?
你不能在foreach中间改变它 - 你需要提出一些其他机制,例如:
// Get the KeyValuePair items to change in a separate collection (list)
var pairsToChange = dictionary.Where(d => d.Value == "red").ToList();
foreach(var kvp in pairsToChange)
dictionary[kvp.Key] = "blue";
Run Code Online (Sandbox Code Playgroud)