我想知道 LINQ 完成了多少次迭代。所以我写了一个简单的查询
string xx = "The quick brown fox jumps over the lazy dog";
char search = 'f';
int j = 0;
var result = xx.Select((b, i) =>
{
j++;
return b.Equals(search) ? i : -1;
})
.Where(i =>
{
j++;
return i != -1;
});
MessageBox.Show(j.ToString());
我以为 j
会包含完成的迭代次数,但令人惊讶的是它仍然为 0。为什么会这样?其次,如何找出 LINQ 完成了多少次迭代。
最佳答案
那是因为 LINQ 是 lazy evaluated .因此,只有在必要时才会调用 lambda。
例如最后执行.ToList()
来触发它。
关于c# - 找出 linq 完成了多少次迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12775125/