对于不是函数式编程背景的程序员,有什么要避免的错误吗?

最佳答案

人们容易犯的最大错误是误解了 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/

10-16 16:27
查看更多