foreach ( Effect effect in this.Effects.Where ( e => e.IsTransparentEffect && e.HasGPUSupport ) )
yield return new RealtimeEffect<TransparentEffect> ( effect );
对比
this.Effects.Where ( e => e.IsTransparentEffect && e.HasGPUSupport )
.Select ( e => new RealtimeEffect<TransparentEffect> ( e ) );
我不知何故认为 Select 会尝试以不同的方式收集结果,而不是像 #1 那样只是产生结果?
还有性能差异吗?
最佳答案
它在功能上绝对是相同的(尽管我假设您的 LINQ 示例中缺少 new
关键字是一个拼写错误)。
Select 中有一些 null 检查,但这不太可能显着影响性能。
Jon Skeet 在他的博客上写了一篇很好的文章:http://msmvps.com/blogs/jon_skeet/archive/2010/12/23/reimplementing-linq-to-objects-part-3-quot-select-quot-and-a-rename.aspx
关于c# - 这些枚举代码的功能相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952023/