LINQ中两种查询类型有什么区别?

Lin*_*inh 1 linq

我有一张桌子被命名为"MYTABLE".这有两列"FIRSTNAME"和"LASTNAME".下面两个查询返回相同的结果IQueryable<MYTABLE>

dataContext.MYTABLEs.Where(f => f.FIRSTNAME == firstName && f.LASTNAME == lastName);

from t in dataContext.MYTABLEs
where t.FIRSTNAME == firstName && t.LASTNAME == lastName select t;
Run Code Online (Sandbox Code Playgroud)

有什么不同?哪两个查询更快?

Ahm*_*eed 8

他们都是一样的.您可以使用lambda(方法)语法(第一种方法)或查询语法(第二种方法)编写LINQ查询.后者只是语法糖,两者都被编译成相同的东西.

LINQ查询语法与方法语法 MSDN文章:

方法语法和查询语法之间没有语义差异.此外,某些查询(例如检索与指定条件匹配的元素数量的查询或检索源序列中具有最大值的元素的查询)只能表示为方法调用.

类似的问题可以在这里找到.