user256890 user256890 - 1 year ago 107
C# Question

Paging with LINQ for objects

How would you implement paging in a LINQ query?
Actually for the time being, I would be satisfied if the sql TOP function could be imitated. However, I am sure that the need for full paging support comes up sooner later anyway.

var queryResult = from o in objects
where ...
select new
A = o.a,
B = o.b
????????? TOP 10????????

Answer Source

You're looking for the Skip and Take extension methods. Skip moves past the first N elements in the result, returning the remainder; Take returns the first N elements in the result, dropping any remaining elements.

See MSDN for more information on how to use these methods:

For example:

int numberOfObjectsPerPage = 10;
var queryResultPage = queryResult
  .Skip(numberOfObjectsPerPage * pageNumber)