在一次采访中,面试官问我以下查询
int[] array = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Func<int, int> func = i =>
{
Console.Write(array[i]);
return i;
};
var result = array.Where(e => e <= func(2)).ToArray();
Run Code Online (Sandbox Code Playgroud)
任何人都会指导我如何e <= func(2)运作?以及如何最后一行即
var result = array.Where(e => e <= func(2)).ToArray();
Run Code Online (Sandbox Code Playgroud)
作品?
如果使用括号,可能更容易理解:
var result = array.Where(e => (e <= func(2))).ToArray();
Run Code Online (Sandbox Code Playgroud)
这个
e => ...
Run Code Online (Sandbox Code Playgroud)
构造一个带有一个参数的函数.
这个
e <= func(2)
Run Code Online (Sandbox Code Playgroud)
比较e到func(2).用参数func(2)调用函数.func2
总而言之,与此<=毫无关系=>.他们是两个完全不同的运营商.总结... => ...构造一个函数.... <= ...比较参数.
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |