在 LINQ 查询语法中,是否可以编写 IQueryable<MyObject> = query.Take(1)
或类似的代码。 我正在使用 C# 5 和 EF 5。
在 LINQ 查询语法中,是否可以编写 IQueryable<MyObject> = query.Take(1)
或类似的代码。 我正在使用 C# 5 和 EF 5。
C#中的LINQ查询表达式语法中不存在与Take
相当的方法。唯一存在查询表达式等效的方法是
Where,
Select,
SelectMany,
Join,
GroupJoin,
OrderBy,
OrderByDescending,
ThenBy,
ThenByDescending,
GroupBy,
Cast
这来自规范的 §7.16.2 部分。
Enumerable.GroupJoin
方法! - Steven Wexler不行,你必须使用点语法来进行该操作。对于 ToList
、Count
等操作也是一样的。
var query =
(from item in list
where predicate(item)
select func(item))
.Take(10);
.Skip(n).Take(m)
”来实现,而不会使代码看起来太混乱。 - DaiTake
实现了查询,应该将其与逻辑查询分开。 - asawyer从查询结果r中取前2个
(跳过工作方式类似) - Tim Schmelter