【发布时间】:2016-03-17 08:09:32
【问题描述】:
我想通过从 vlist 获取值而不使用任何 foreach 循环来更新 vmlist。
现在我只是用foreach 循环来做这个,但我想用LINQ 替换这个foreach
foreach (var item in vlist){
vmlist.Where(list => list.SId==item.SId && list.ParameterId==item.ParameterId && list.WId==item.WId)
.Select(li => { li.Value = item.Value; return li; }).ToList();
}
【问题讨论】:
-
为什么您不想使用
foreach循环?就我个人而言,我肯定会在这里使用嵌套的foreach循环,而不是您当前滥用 LINQ 来包含副作用并使用ToList强制评估。 -
请注意,当您说“lambda”时,您的真正意思是“LINQ”...... lambda 表达式只是 C# 中的一个语法元素。顺便说一句,嵌套 foreach 的替代方法是连接。
-
我认为使用 foreach 执行很耗时
-
那你还没有理解你当前的代码是做什么的,或者 LINQ 是如何工作的。
-
我知道已经有嵌套迭代,但我只是想避免 foreach