如何将含属性赋值的LINQ方法语法转换为查询语法
LINQ方法语法转查询语法
原方法语法代码:
result.Select(c => { c.property1 = 100; return c; }).ToList();
需要注意的是,这段代码存在修改元素属性的副作用,不符合LINQ以查询为主、无副作用的设计原则。如果一定要转换成查询语法,可以借助let关键字来实现:
(from c in result let _ = (c.property1 = 100) select c).ToList();
这里用let执行属性赋值操作(忽略返回值),再通过select返回原元素,最后调用ToList()生成结果列表。
内容的提问来源于stack exchange,提问作者AtomicallyBeyond
相关产品推荐
相关产品推荐

