asp.net – 如何在迭代字典项时更新值?
发布时间:2020-05-22 12:13:44 所属栏目:asp.Net 来源:互联网
导读:我有一本字典: Dictionarystring, long Reps = new Dictionarystring, long(); 我想在迭代所有项目时更新值,如下所示: foreach (string key in Reps.keys){ Reps[key] = 0;} 它给我一个错误说: Collection was modified; enumeration ope
|
我有一本字典: Dictionary<string,long> Reps = new Dictionary<string,long>(); 我想在迭代所有项目时更新值,如下所示: foreach (string key in Reps.keys)
{
Reps[key] = 0;
}
它给我一个错误说: "Collection was modified; enumeration operation may not execute" 任何人都可以告诉我为什么它给我这个错误,因为我还有一个函数添加了值,并在单击按钮时调用它: public static void Increment(string RepId,int amount)
{
long _value = Convert.ToInt64(Reps[RepId]);
_value = _value + amount;
Reps[RepId] = _value;
}
这个功能工作正常.那么更新所有值时会出现什么问题?最新解决方案是什么? 解决方法更简化,这样做:foreach (string key in Reps.keys.ToList())
{
Reps[key] = 0;
}
并且出错的原因是您正在尝试编辑正在使用的实际对象,如果您复制它,然后像这样使用它: var repscopy = Reps;
foreach (string key in repscopy.keys)
{
Reps[key] = 0;
}
它会给出与指向原始对象相同的错误,并且当添加ToList()时,它会创建一个新的List对象 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .net – Control.ResolveUrl与Control.ResolveClientUrl对比
- asp.net – Internet Explorer中的“通过电子邮件发送页面”
- ASP.NET错误:页面Y.ascx无法使用用户控件X.ascx
- 在ASP.NET中如何处理未处理的异常?
- asp.net-mvc – ASP.NET MVC Beta 1 – 哪里是Html.RenderP
- asp.net-mvc – 使用Nuget打包源代码
- ASP.NET MVC4 Google oAuth
- asp.net – 在IE9中HTML表格无法正确呈现
- asp.net-mvc – 使用jQuery getJson发送list/array作为参数
- asp.net – HTTP错误404.4 – 未找到您要查找的资源没有与之
推荐文章
站长推荐
- .net – ASP MVC HTML Helpers – 好还是坏?
- asp.net-mvc – 使用NLog记录未处理的异常? ELM
- asp.net中XML如何做增删改查操作
- asp.net-web-api – 在WebApi和MVC项目之间共享S
- asp-classic – 如何在经典ASP中将数据POST到远程
- asp.net – Visual Studio 2012:无法附加进程.已
- ASP.NET Web API控制器专用串行器
- asp.net – 如何强制web API来识别querystring参
- asp.net – 如何使用ajax调用跨域web api?
- asp.net-mvc – 如何从ActionResult获取模型?
热点阅读
