缓慢的foreach()用于列更新

时间:2013-12-10 08:03:21

标签: c# wpf mvvm csla

我想更新一个有大约4k行的表的列。该列必须获取父级的日期,因此我使用的是简单的foreach:

Parent.VariableDate = DateTime.Now;
foreach (var item in Parent.ChildList)
{
    item.vari = Parent.VariableDate ;

}

问题:

此行动需要很长时间。我可以立即更新整列吗?

2 个答案:

答案 0 :(得分:0)

你可以使用Linq

Parent.ChildList.foreach(p=>p.vari = DateTime.Now);

这是最快的方式

答案 1 :(得分:0)

我不确定你是否会以任何其他方式写这篇文章。如果可能,在您的情况下(?),更好的选择可能是避免在VariableDate中的每个项目中使用ChildList,而只需在需要时引用Parent。这样,您就不必遍历4K行。

如您的问题所示,每个item.VariableDate似乎都是多余的。