And*_*ite 14 c# linq coding-style
可能是一个愚蠢的问题,但我有很多:
if(X)
{
foreach(var Y in myList.Where(z => z == 1)
{
}
}
Run Code Online (Sandbox Code Playgroud)
一些代码中的构造
正在替换它
foreach(var Y in myList.Where(z => X && z == 1) { }
Run Code Online (Sandbox Code Playgroud)
疯?
它可能不太可读,但编译器会优化它以使它几乎相同的代码吗?
当x为false时,第二个选项会慢得多,因为当你知道检查总是会失败时,你会检查列表中的所有项目.
编译器优化器将无法撤消您的损坏.这种优化级别通常只能在函数式语言中使用,因为编译器很难跟踪可能的副作用.
Linq没有内置的优化,它与您对数据库中的SQL查询重写器的期望值接近.
| 归档时间: |
|
| 查看次数: |
10964 次 |
| 最近记录: |