谁能读懂下面这行 lambda。
n => n % 2 == 1
此外,如果我必须在没有 lambda 的情况下编写同一段代码,我将如何编写。这可能会让我明白。
下面是另外一段代码
List<int> numbers = new List<int>{11,37,52};
List<int> oddNumbers = numbers.where(n => n % 2 == 1).ToList();
最佳答案
大声朗读表达式是
n 'goes to' n modulus two equals one
n => n % 2 == 1
本质上,您可以将此 lambda 视为一个函数,当提供给它的值 (n
) 为奇数且为正时返回 true,否则返回 false。你也可以把它写成一个方法
bool IsOddAndPositive(int n)
{
return n % 2 == 1;
}
在您的代码段中使用它会是
List<int> numbers = new List<int>{11, 37, 52};
List<int> oddNumbers = numbers.Where(IsOddAndPositive).ToList();
结果(您指定的内容和方法示例的结果)是
11, 37
关于c# - 如何阅读这个 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18349799/