Utilbox.Pagination
2.1.0
dotnet add package Utilbox.Pagination --version 2.1.0
NuGet\Install-Package Utilbox.Pagination -Version 2.1.0
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="Utilbox.Pagination" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Utilbox.Pagination" Version="2.1.0" />
<PackageReference Include="Utilbox.Pagination" />
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 Utilbox.Pagination --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Utilbox.Pagination, 2.1.0"
#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 Utilbox.Pagination@2.1.0
#: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=Utilbox.Pagination&version=2.1.0
#tool nuget:?package=Utilbox.Pagination&version=2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Utilbox.Pagination
A lightweight and efficient pagination library for .NET applications that provides a simple way to paginate collections and handle paginated results.
Features
PaginatedResult<T>
- Immutable result type with read-only collections
- Comprehensive pagination metadata:
- Current page number (1-based)
- Page size
- Total items count
- Total pages count
- Next/previous page indicators
- Type-safe generic implementation
Pagination Utilities
- In-memory collection pagination
- Input validation for page numbers and sizes
- Efficient skip/take operations
- Automatic total pages calculation
Installation
Package Manager Console
Install-Package Utilbox.Pagination
.NET CLI
dotnet add package Utilbox.Pagination
Usage Examples
Basic Pagination
// Create a collection
var items = Enumerable.Range(1, 100).ToList();
// Paginate the collection
var pageNumber = 1u; // First page
var pageSize = 10u; // 10 items per page
var paginatedResult = items.ToPaginatedResult(pageNumber, pageSize);
// Access pagination metadata
Console.WriteLine($"Page {paginatedResult.PageNumber} of {paginatedResult.TotalPages}");
Console.WriteLine($"Showing {paginatedResult.Items.Count} of {paginatedResult.TotalItems} items");
Console.WriteLine($"Has next page: {paginatedResult.HasNextPage}");
Console.WriteLine($"Has previous page: {paginatedResult.HasPreviousPage}");
// Access the items
foreach (var item in paginatedResult.Items)
{
Console.WriteLine(item);
}
Working with Paginated Results
// Create a paginated result manually
var items = new List<string> { "Item1", "Item2", "Item3" };
var result = new PaginatedResult<string>(
items: items,
pageNumber: 1,
pageSize: 10,
totalItems: 3,
totalPages: 1
);
// Access properties
var currentPage = result.PageNumber;
var itemsPerPage = result.PageSize;
var totalItems = result.TotalItems;
var totalPages = result.TotalPages;
var hasNext = result.HasNextPage;
var hasPrevious = result.HasPreviousPage;
Requirements
- .NET Standard 2.0 or higher
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- System.ComponentModel.Annotations (>= 5.0.0)
- System.Runtime (>= 4.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.