【发布时间】:2014-09-16 12:11:20
【问题描述】:
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);
var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
这些是取自 http://msdn.microsoft.com/en-us/library/bb397687.aspx 的 C# 代码
通过将 n 视为数组“数字”的一个元素,我可以很好地理解前两个 lambda 表达式。
但是,第三个 lambda 表达式确实与“索引”混淆了。 (n,index) 是为数组建立良好的 lambda 参数之一吗?这是一个约定吗?
【问题讨论】:
-
index 是数组中元素的索引,这个表达式返回数组中的所有元素,直到遇到一个值小于其位置的数字。OK ?
-
这只是
TakeWhile()接受的委托的一部分。你可以在这里阅读:msdn.microsoft.com/en-us/library/vstudio/…。查看 谓词 参数。 -
当您查看该特定方法的文档时,您发现了什么,您对其中的哪些方面感到困惑?