Paging using LINQ Skip and Take Suppose you have a data in result object IEnumerable < RTRDocumentSearchResultViewModel > result; Pass the Parameter of PageIndex and PageSize Suppose, PageIndex=1, PageSize=3 First, count the number data in result count = result.Count(); Then, after int skipCount = (model.PageIndex - 1) * model.PageSize; var resetSet = result.AsQueryable(); resetSet = skipCount == 0 ? resetSet.Take(model.PageSize) : resetSet.Skip(skipCount).Take(model.PageSize); and finally return the new resul AsEnumerable() collection resetSet.AsEnumerable();