【发布时间】:2010-12-08 18:06:23
【问题描述】:
以下哪种情况会更快?
场景一:
foreach (var file in directory.GetFiles())
{
if (file.Extension.ToLower() != ".txt" &&
file.Extension.ToLower() != ".bin")
continue;
// Do something cool.
}
场景 2:
var files = from file in directory.GetFiles()
where file.Extension.ToLower() == ".txt" ||
file.Extension.ToLower() == ".bin"
select file;
foreach (var file in files)
{
// Do something cool.
}
我知道由于执行延迟,它们在逻辑上是相同的,但哪个更快?为什么?
【问题讨论】:
-
为什么不让他们看几个样本看看会发生什么?
-
分析器来救援!
-
我对理论的兴趣多于实践。我真的很想了解这一点。
标签: linq performance delayed-execution