这是我的代码:
foreach (OrderItem item in OrderInfo.order)
{
orderItemViews.Single(i => i.numericUpDown.Name == item.id.ToString()).numericUpDown.Value = item.count;
}
它给出了一个例外。
我知道我无法改变里面的集合foreach
我如何更改此代码以使其正常工作?最好是 LINQ 代码。
异常表示“集合已修改”。抱歉,无法提供真实的异常消息,因为它是非英语的
对不起大家。我发现收藏正在发生变化。它位于 *numericUpDown_ValueChanged* 处理程序内部。无论如何我已经得到答案了。谢谢
您可以使用ToList()
, 像这样 :
foreach (OrderItem item in OrderInfo.order.ToList())
{
orderItemViews.Single(i => i.numericUpDown.Name == item.id.ToString()).numericUpDown.Value = item.count;
}
或者使用普通的 for 循环:
for (int i = 0 ; i < OrderInfo.order.Count; i++)
{
OrderItem item = OrderInfo.order[i];
orderItemViews.Single(i => i.numericUpDown.Name == item.id.ToString()).numericUpDown.Value = item.count;
}
Tip:从性能角度来看,最好使用第二种方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)