C# linq表达式在IEnumerable上的频率<;T>;评价的?

C# linq表达式在IEnumerable上的频率<;T>;评价的?,c#,performance,linq,C#,Performance,Linq,在下面的场景中,我有点不确定延迟执行。在以下片段中,IEnumerable Linq表达式的求值频率是多少?在foreach循环之前,我是否最好将它赋给一个局部变量 foreach (var x in y.Where(s => s.Length > 0)) { // do something } // where y is, for example, an IEnumerable<string> foreach(变量x在y.Where中(s=>s.Length>

在下面的场景中,我有点不确定延迟执行。在以下片段中,IEnumerable Linq表达式的求值频率是多少?在foreach循环之前,我是否最好将它赋给一个局部变量

foreach (var x in y.Where(s => s.Length > 0))
{
   // do something
}

// where y is, for example, an IEnumerable<string>
foreach(变量x在y.Where中(s=>s.Length>0))
{
//做点什么
}
//其中y是一个IEnumerable

foreach()
是语法糖,它获取枚举数并对其进行操作。在提出新问题之前,请尝试搜索。请看一看,特别是其中提供了扩展版的
foreach(V in x)嵌入式_语句
。这有助于回答您的问题吗?@CodeCaster调用foreach
synctractic sugar有点过分。它所做的是相当复杂和漫长的。。。太长了,不能简单地称之为synctractic sugar(但你在技术上是正确的……只有根据你的定义,我们可能会删除90%的C语言作为synctractic sugar)Codecaster,顺便说一句,这些问题不可能是重复的。