LINQ是对.NET以来最伟大的改进之一,它可以节省大量的时间和代码行.但是,对于我来说,流畅的语法似乎比查询表达式语法更自然.
var title = entries.Where(e => e.Approved)
.OrderBy(e => e.Rating).Select(e => e.Title)
.FirstOrDefault();
var query = (from e in entries
where e.Approved
orderby e.Rating
select e.Title).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
这两者之间是否有任何区别,或者一方面有什么特别的好处呢?
我开始一般使用LINQ(到目前为止使用XML和toSQL).我已经看到有时候有两种或更多种方法可以达到相同的效果.拿这个简单的例子,据我所知,两者都返回完全相同的东西:
SomeDataContext dc = new SomeDataContext();
var queue = from q in dc.SomeTable
where q.SomeDate <= DateTime.Now && q.Locked != true
orderby (q.Priority, q.TimeCreated)
select q;
var queue2 = dc.SomeTable
.Where( q => q.SomeDate <= DateTime.Now && q.Locked != true )
.OrderBy(q => q.Priority)
.ThenBy(q => q.TimeCreated);
Run Code Online (Sandbox Code Playgroud)
除了我在语法中可能犯的任何错误或缺少参数或差异之外,我们的想法是有两种表达同一事物的方法; 我知道第一种方法有一些局限性,"点符号"更完整,但除此之外,还有其他优点吗?