[英]how to construct a list using Linq, while doing something else?
例如
foreach (var item in List<int> a)
{
b.add(item);
c+=item;
dosomething();
}
怎么写成Linq形式? 还是有必要?
我猜它具有以下格式: var b = a.xxxx(x=>(c+=x;dosomething())).ToList()
由于LINQ实际上是一种查询语言,因此我要说,在查询被评估时具有次要效果的查询是不好的样式。 我个人要么保留现状,要么将其更改为以下形式:
var c = a.Sum();
var b = a.ToList();
foreach(var item in a)
{
DoSomething();
}
即使最终要遍历列表多次,也可以轻松浏览每一行代码并立即知道它的作用。
您可以这样做:
var b = a.Select(i => { c += i; dosomething(); return i; }).ToList();
请注意,这可能被视为不良做法。 foreach
循环可能更具可读性,因此更易于维护。 (由于列表中的每个项目都没有执行跳转指针指令,因此性能也会更高。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.