我在2006年学习了C#,最近又想重新学习它。我发现他们在C#3.0中添加了一些东西,叫做LINQ扩展。现在我熟悉扩展方法,并且只是在思考与IEnumerables相关的具体细节。
今天早些时候,我和我的一个同事在争论以下代码块是否等价:
List<int> integers;
IEnumerable<int> subResult = items.Where(i => IsPrime(i));
IEnumerable<int> orderedResult = subResult.OrderBy(i => i);
对比
List<int> integers;
IEnumerable<int> result = items.Where(i => IsPrime(i)).OrderBy(i => i);
他告诉我最新的版本更高效,因为该扩展使用了延迟查询其来源的方法。我不太确定我理解他的意思,想知道他是否正确。