我写了下面的代码,但我无法理解它是如何执行的。
class Program
{
static void Main(string[] args)
{
int[] nums = { 1, 5, 10, 3, 554, 34};
var nn = nums.TakeWhile((n, junk) => n > junk);
nn.Count();
foreach (var a in nn)
{
Console.WriteLine(a);
}
Console.ReadKey();
}
}
首先,我将 TakeWhile 表达式写为 n => n > 5
。我能够理解这一点。但我只是添加了一个参数junk
。这里有什么垃圾?在查询执行期间分配给它的值是什么?它如何将输出作为 1、5 和 10。
最佳答案
junk
是当前处理的元素的索引 - 参见 http://msdn.microsoft.com/en-us/library/bb548775.aspx
更具可读性和稳定性
var nn = nums.TakeWhile((n, index) => n > index);
关于c# - 具有多个输入参数的 Linq 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7751797/