是IEnumerable<T>轻量级还是重量级的简单LINQ查询?它们如何与手写for或foreach循环比较?何时更喜欢LINQ与手动搜索有一般指导原则?
例如:
var lowNums =
from n in numbers
where n < 5
select n;
Run Code Online (Sandbox Code Playgroud)
相比:
List<int> lowNums = new List<int>();
foreach (int n in numbers)
{
if (n < 5)
{
lowNums.Add(n);
}
}
Run Code Online (Sandbox Code Playgroud)
我和一位同事谈论LINQ,他对使用它表示了一些犹豫.他猜测为了支持LINQ可以做的一切,可能会在"幕后"进行大量工作.
以上示例之间是否存在显着的性能差异?是否有任何好的资源可以谈论集合上的LINQ性能?一个简单的Google搜索linq表现出现了一些看似过时的文章.