Language: C#
IQueryable Linq Pagination Extension
1: public static List<T> Page<T, TResult, TResult1>(this List<T> obj, int page, int pageSize, 2: System.Linq.Expressions.Expression<Func<T, TResult>> keySelector, 3: bool asc, out int rowsCount, bool isThenBy, System.Linq.Expressions.Expression<Func<T, TResult1>> thenByClause) 4: { 5: rowsCount = obj.Count(); 6: if (asc) 7: { 8: if (isThenBy) 9: return obj.AsQueryable().OrderBy(keySelector).ThenBy(thenByClause).Skip((page == 0 ? 0 : page - 1) * pageSize) 10: .Take(pageSize).ToList(); 11: return obj.AsQueryable().OrderBy(keySelector).Skip((page - 1) * pageSize) 12: .Take(pageSize).ToList(); 13: } 14: if (isThenBy) 15: return obj.AsQueryable().OrderByDescending(keySelector).ThenByDescending(thenByClause).Skip((page == 0 ? 0 : page - 1) * pageSize) 16: .Take(pageSize).ToList(); 17: return obj.AsQueryable().OrderByDescending(keySelector).Skip((page - 1) * pageSize) 18: .Take(pageSize).ToList(); 19: }
Tags:
Description:
To paginate your Linq Iqueryable
Report Abuse
Subscribe
Discuss
What's new
What is it
New Snippet
Recent Snippets
My Snippets
Web Code
Search

