È possibile scrivere IQueryable<MyObject> = query.Take(1)
o qualcosa di equivalente nella sintassi della query LINQ. Sto usando C# 5 e EF 5.Come scrivere Take (1) nella sintassi della query
16
A
risposta
17
Non v'è alcun equivalente Take
nella sintassi delle espressioni di query per LINQ in C#. Gli unici metodi con equivalenti di espressione di query sono
Where,
Select,
SelectMany,
Join,
GroupJoin,
OrderBy,
OrderByDescending,
ThenBy,
ThenByDescending,
GroupBy,
Cast
Questo è da §7.16.2 delle specifiche.
+3
Non sapevo che esistesse un "Enumerable.GroupJoin'! –
8
No. È necessario utilizzare la sintassi del punto per tale operazione. Lo stesso vale per ToList
, Count
, ecc ...
var query =
(from item in list
where predicate(item)
select func(item))
.Take(10);
Solo con VB.NET. –
Sfortunatamente no, C# non ha tante parole chiave in linq in lingua come VB, ma puoi farlo senza sembrare troppo disordinato aggiungendo ".Skip (n) .Take (m)" alla fine. – Dai
@TimSchmelter oh cool. Per curiosità, qual è la sintassi in VB.NET? –