问题
Is it possible to write IQueryable<MyObject> = query.Take(1)
or something equivalent in LINQ query syntax. I'm using C# 5 and EF 5.
回答1:
There is no equivalent to Take
in the query expression syntax for LINQ in C#. The only methods that have query expression equivalents are
Where,
Select,
SelectMany,
Join,
GroupJoin,
OrderBy,
OrderByDescending,
ThenBy,
ThenByDescending,
GroupBy,
Cast
This is from §7.16.2 of the specification.
回答2:
No. You have to use the dot syntax for that operation. Same goes for ToList
, Count
, etc...
var query =
(from item in list
where predicate(item)
select func(item))
.Take(10);
来源:https://stackoverflow.com/questions/17890729/how-can-i-write-take1-in-query-syntax