26

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.

Steven Wexler
  • 16,589
  • 8
  • 53
  • 80

2 Answers2

28

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.

jason
  • 236,483
  • 35
  • 423
  • 525
23

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);
Timothy Shields
  • 75,459
  • 18
  • 120
  • 173