Skip to content

PagedResult<T>

Paginated result set with metadata.

Properties

PropertyTypeDescription
ItemsIReadOnlyList<T>Current page items
TotalCountintTotal items across all pages
PageNumberintCurrent page (1-based)
PageSizeintItems per page
TotalPagesintCalculated total pages
HasNextboolHas next page
HasPreviousboolHas previous page

Factory Methods

MethodDescription
Empty(int page, int size)Empty result
FromAll(IEnumerable<T>)Single page with all items

Instance Methods

MethodDescription
Map<TNew>(Func<T, TNew>)Transform items
Where(Func<T, bool>)Filter current page

Extension Methods

MethodDescription
ToPagedResult(int page, int size)From IEnumerable
ToPagedResult(int total, int page, int size)Pre-paginated data

Usage

csharp
public async Task<PagedResult&lt;ProductDto&gt;> GetProductsAsync(int page, int size)
{
    var query = _context.Products.Where(p => !p.IsDeleted);
    var total = await query.CountAsync();
    var items = await query
        .Skip((page - 1) * size)
        .Take(size)
        .ToListAsync();

    return items.ToPagedResult(total, page, size);
}

Released under the MIT License.