关于LINQ的一个问题,以直没弄明白
就是=> 这个符号是什么意思?
------解决方案--------------------可以理解为左侧的参数传给右侧的语句。
------解决方案--------------------这是 lambda 运算符
例如,lambda 表达式 x => x * x 指定名为 x 的参数并返回 x 的值计算的。
http://msdn.microsoft.com/zh-cn/library/vstudio/bb397687.aspx
------解决方案--------------------(int x) => x //实际上int可以不写
相当于定义了这样一个函数:
int myfunc(int
x)
{
return
x;
}
p => p.id == 1
相当于
bool myfunc(Product
p)
{
return
p.id == 1;
}
------解决方案--------------------你也可以把一个函数写成Lambda
比如:
int Sum(int max)
{
int result = 0;
for (int i = 1; i <= max; i++)
{
result += i;
}
return result;
}
void Main()
{
Console.WriteLine(sum(100)); // 5050
}
也可写成
void Main()
{
Func<int, int> sum = max =>
{
int result = 0;
for (int i = 1; i <= max; i++)
{
result += i;
}
return result;
};
Console.WriteLine(sum(100)); // 5050
}
此时不需要额外定义那个sum函数了。
------解决方案--------------------