public static PaginatedResult <T> Paginate <T>(this IEnumerable <T> query, Pagination pagination) { if (pagination == null || query == null) { return(null); } var result = new PaginatedResult <T>(); var list = query.ToList(); pagination.TotalCount = list.Count; result.Items = list .Skip(pagination.ItemsPerPage * (pagination.Page - 1)) .Take(pagination.ItemsPerPage) .ToList(); result.Pagination = pagination; return(result); }