【发布时间】:2011-09-17 04:32:26
【问题描述】:
我正在努力加深对副作用以及应如何控制和应用它们的理解。
在下面的航班列表中,我想为每个满足条件的航班设置一个属性:
IEnumerable<FlightResults> fResults = getResultsFromProvider();
//Set all non-stop flights description
fResults.Where(flight => flight.NonStop)
.Select(flight => flight.Description = "Fly Direct!");
在这个表达式中,我的列表有副作用。根据我有限的知识,我知道前任。 “LINQ 仅用于查询”和“列表只有少数操作,赋值或设置值不是其中之一”和“列表应该是不可变的” .
- 我上面的 LINQ 语句有什么问题,应该如何更改?
- 我可以从哪里获得有关上述场景的基本范式的更多信息?
【问题讨论】:
-
使用“foreach”循环来引发副作用。选择是为了投影,而不是为了更新。这就是为什么它被称为“选择”而不是“更新”。
标签: c# linq list paradigms side-effects