对于不是函数式编程背景的程序员,有什么要避免的错误吗?
最佳答案
人们容易犯的最大错误是误解了 LINQ 查询的惰性和评估规则:
查询是惰性的:在您迭代它们之前它们不会被执行:
// This does nothing! No query executed!
var matches = results.Where(i => i.Foo == 42);
// Iterating them will actually do the query.
foreach (var match in matches) { ... }
此外,结果不会被缓存。每次迭代它们时都会计算它们:
var matches = results.Where(i => i.ExpensiveOperation() == true);
// This will perform ExpensiveOperation on each element.
foreach (var match in matches) { ... }
// This will perform ExpensiveOperation on each element again!
foreach (var match in matches) { ... }
底线:知道您的查询何时执行。
关于c# - 常见的 Linq/标准查询运算符错误/错误步骤?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3703681/