muench-develops.LightweightPagination 1.0.1

dotnet add package muench-develops.LightweightPagination --version 1.0.1
                    
NuGet\Install-Package muench-develops.LightweightPagination -Version 1.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="muench-develops.LightweightPagination" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="muench-develops.LightweightPagination" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="muench-develops.LightweightPagination" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add muench-develops.LightweightPagination --version 1.0.1
                    
#r "nuget: muench-develops.LightweightPagination, 1.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package muench-develops.LightweightPagination@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=muench-develops.LightweightPagination&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=muench-develops.LightweightPagination&version=1.0.1
                    
Install as a Cake Tool

LightweightPagination

A lightweight helper library for efficient pagination in .NET. It provides utility methods to paginate collections and retrieve pagination metadata with minimal overhead. Perfect for APIs and applications that require simple and effective data pagination.


Features

  • Paginate any collection using IEnumerable<T>, IAsyncEnumerable<T>, IQueryable<T>.
  • Retrieve pagination metadata, such as total pages and total items.
  • Lightweight and dependency-free.
  • Clear error handling for invalid input.

Installation

Install the package from NuGet:

dotnet add package muench-develops.LightweightPagination

Usage

Paginate a Collection

using LightweightPagination;

// Example data
var items = Enumerable.Range(1, 100); // A collection of 100 items
int pageNumber = 2;
int pageSize = 10;

// Get the second page (items 11 to 20)
var paginatedItems = PaginationHelper.Paginate(items, pageNumber, pageSize);

Console.WriteLine(string.Join(", ", paginatedItems)); // Output: 11, 12, 13, ..., 20

Get Pagination Metadata

using LightweightPagination;

// Example data
var items = Enumerable.Range(1, 100); // A collection of 100 items
int pageSize = 10;

// Get metadata
var (totalPages, totalCount) = PaginationHelper.GetPaginationMetadata(items, pageSize);

Console.WriteLine($"Total Pages: {totalPages}, Total Count: {totalCount}");
// Output: Total Pages: 10, Total Count: 100

API Reference

PaginationHelper.Paginate<T>(IEnumerable<T> source, int pageNumber, int pageSize)

  • Parameters:
    • source: The collection to paginate.
    • pageNumber: The 1-based page number to retrieve.
    • pageSize: The number of items per page.
  • Returns: A subset of the collection representing the specified page.
  • Throws:
    • ArgumentException: If pageNumber or pageSize are less than or equal to 0.

PaginationHelper.GetPaginationMetadata<T>(IEnumerable<T> source, int pageSize)

  • Parameters:
    • source: The collection to paginate.
    • pageNumber: The 1-based page number to retrieve.
    • pageSize: The number of items per page.
  • Returns:
    • TotalPages: Total number of pages.
    • TotalCount: Total number of items in the collection.
  • Throws:
    • ArgumentException: If pageSize is less than or equal to 0.
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 119 12/22/2024
1.0.0 105 12/22/2024