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();

对吧?

Lambda - Linq Convert

=>,可以读作映射到被映射到,属于labda表达式的语法。lambda表达式的语法是

(arg_1, arg_2, ..., arg_n) => rhs,

其中(arg-1, arg_2, ..., arg_n)是自变量的列表;如果存在一个自变量,则列表(arg1)可以缩写为arg1rhs是所需返回类型的表达式,例如在中

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表达式