Any() 运行 LINQ 查询

Does Any() run the LINQ query

如果我写一个查询,例如:

var query = (from a in this.Context.Addresses where a.Active select a.Name);

那么

这样说对吗
if(query.Any())
 return query.ToList();

return null;

请注意查询没有 FirstOrDefault()ToList() 所以我想知道 .Any() 是否运行查询?

是的 - 它必须,因为它必须 return truefalse。如果没有 运行 查询,它 可能 无法做到这一点。

如果你要有条件地 return ToList(),你最好写成:

var list = query.ToList();
return list.Any() ? list : null;

... 或者我实际上建议您只是 return query.ToList() 无论如何 ,因为使用空列表而不是必须特例空值。