【发布时间】:2009-03-19 22:40:20
【问题描述】:
我刚刚替换了这段代码:
foreach( var source in m_sources )
{
if( !source.IsExhausted )
{
....
}
}
用这个:
foreach( var source in m_sources.Where( src => !src.IsExhausted ) )
{
...
}
现在代码看起来更好(对我来说),但我想知道这里到底发生了什么。我担心这种情况下的性能,如果应用此过滤器意味着会发生某种编译器魔法,那将是个坏消息。
这两段代码在做“相同”的事情吗?是否创建了临时容器来执行过滤然后将它们传递给我的 foreach?
非常感谢您对此主题的任何帮助。谢谢。
【问题讨论】:
-
本文解释了 .NET Framework 和 .NET 5 的幕后情况:levelup.gitconnected.com/…
标签: c# .net linq performance where-clause