Lambda - Linq Convert
本文关键字:Convert Linq Lambda | 更新日期: 2023-09-27 18:04:46
我知道有一个简单的lambda查询(not sure if this one called a query)
var person = db.People.Where(a => a.PersonId == id).FirstOrDefault();
我有个问题,因为我对lambda一无所知。=>
的用途是什么?如果它被转换为linq,那么它在linq中的值是多少?。
根据我的基本知识,这可能是转换linq查询
var person = (from p in db.Person where p.PersonId == id select p).FirstOrDefault();
对吧?
=>
,可以读作映射到或被映射到,属于labda表达式的语法。lambda表达式的语法是
(arg_1, arg_2, ..., arg_n) => rhs,
其中(arg-1, arg_2, ..., arg_n)
是自变量的列表;如果存在一个自变量,则列表(arg1)
可以缩写为arg1
。rhs
是所需返回类型的表达式,例如在中
x => x * x
或者如下返回所需类型的复合语句。
x =>
{
return x * x;
}
lambda表达式的参数和返回类型不是显式定义的,而是在编译时推导的。总的来说,
a => a.PersonId == id
定义了将人员a
映射到通过评估a.PersonId == id
生成的布尔值的函数,这意味着返回值是true
,当且仅当人员的PersonId
等于id
。
=>是lambda运算符,是lambda表达式语法的一部分。
=>左侧是=>右侧表达式的输入参数
a=> a.PersonId == id
就像一个函数,它接受一个person对象和一个Id,并返回一个布尔值,即
bool CheckIfIdIsEqual(Person a, int id) {
return a.PersonId == id;
}
=>
运算符的表达式称为lambda表达式。
在lambda演算中,我们将这些模式描述为微小的函数。在C#语言中,我们使用lambda函数和=>运算符来转换数据。
var person = db.People.Where(a => a.PersonId == id).FirstOrDefault();
在上面的代码中,我们使用变量a
访问db.People
中的所有值或数据
有关更多信息,您可以参考:
1.表达式Lambdas
2.C Sharp Lambda Expression
3.Lambda表达式