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();
两者之间有什么区别吗?或者两者之间有什么特别的好处吗?
当我可以用这种方式编写整个表达式时,我更喜欢使用后者(有时称为“查询理解语法”)。
var titlesQuery = from e in entries
where e.Approved
orderby e.Rating
select e.Titles;
var title = titlesQuery.FirstOrDefault();
只要我必须添加(括号)和. methodcalls(),我就会改变。
当我使用前者时,我通常每行放一个子句,像这样:
var title = entries
.Where (e => e.Approved)
.OrderBy (e => e.Rating)
.Select (e => e.Title)
.FirstOrDefault();
我觉得这样更容易理解。
当我可以用这种方式编写整个表达式时,我更喜欢使用后者(有时称为“查询理解语法”)。
var titlesQuery = from e in entries
where e.Approved
orderby e.Rating
select e.Titles;
var title = titlesQuery.FirstOrDefault();
只要我必须添加(括号)和. methodcalls(),我就会改变。
当我使用前者时,我通常每行放一个子句,像这样:
var title = entries
.Where (e => e.Approved)
.OrderBy (e => e.Rating)
.Select (e => e.Title)
.FirstOrDefault();
我觉得这样更容易理解。