我在项目中使用LINQ有一些问题。第一个问题是-旧(select Item from..)linq和新版本(.Select(r => ..))之间在性能上有区别吗?

第二个问题,如何翻译LINQ表达式(以及如何翻译)?会先将其翻译成旧语法,然后再翻译成其他某种东西(中间语言)吗?

最佳答案

编写linq查询的两种方式之间没有任何区别。

具体来说,

var adults = from customer in customers
             where customer.Age>18
             select customer;


等效于此:

var adults = customers.Where(customer=>customer.Age>18);


实际上,编译器将第一个查询转换为第二个查询。编写linq查询的第一种方法类似于语法糖。在后台,如果您编译代码,然后使用反汇编程序查看IL代码,则会注意到您的查询已转换为上述形式的第二种。

用第一种方式编写的查询,我们说我们已经使用了查询语法。使用第二种方式编写查询时,我们说我们使用了流利的语法。

10-01 10:15
查看更多