日期:2014-05-17  浏览次数:20476 次

LINQ的两种写法有什么区别吗?
一直很疑惑的两种写法,

两种写法相同效果的例子

SampleData.Books// 查询操作符                       from book in SampleData.Books //查询表达式

.Where(book => book.Title == "Funny Stories")       where book.Title == "Funny Stories"

.OrderBy(book => book.Title)                        orderby book.Title

.Select(book => new {book.Title, book.Price});      select new {book.Title, book.Price};

 
我经常用“查询操作符”,因为我觉得那更接近于c#编程,容易理解。
你们呢?

请问它们两种的区别除了写法不同还有什么区别,效率上有什么不同?
谢谢呀,

------解决方案--------------------
“Lambda 表达式”是一个匿名函数,Lambda 运算符 =>
LINQ 
编译器都是一样的认,也没有性能区别

------解决方案--------------------
引用:
“Lambda 表达式”是一个匿名函数,Lambda 运算符 =>
LINQ 
编译器都是一样的认,也没有性能区别


+1
------解决方案--------------------
都一样的,我觉得表达式更贴近人的思维
------解决方案--------------------
都一样的
------解决方案--------------------
一种是Lambda表达式
一种是标准查询表达式

最后编译成都会转化成相同的SQL语句
------解决方案--------------------
引用:
都一样的


是的。
------解决方案--------------------
两个当然是一样的。
linq的操作符、linq to sql、linq to xml都是 对linq的扩展,你可以自定义Provider。
利用 表达式树 实现自己的功能。
------解决方案--------------------
引用:
“Lambda 表达式”是一个匿名函数,Lambda 运算符 =>
LINQ 
编译器都是一样的认,也没有性能区别