Tolitech.Queryable.Extensions
1.0.0-preview.3
See the version list below for details.
dotnet add package Tolitech.Queryable.Extensions --version 1.0.0-preview.3
NuGet\Install-Package Tolitech.Queryable.Extensions -Version 1.0.0-preview.3
<PackageReference Include="Tolitech.Queryable.Extensions" Version="1.0.0-preview.3" />
<PackageVersion Include="Tolitech.Queryable.Extensions" Version="1.0.0-preview.3" />
<PackageReference Include="Tolitech.Queryable.Extensions" />
paket add Tolitech.Queryable.Extensions --version 1.0.0-preview.3
#r "nuget: Tolitech.Queryable.Extensions, 1.0.0-preview.3"
#:package Tolitech.Queryable.Extensions@1.0.0-preview.3
#addin nuget:?package=Tolitech.Queryable.Extensions&version=1.0.0-preview.3&prerelease
#tool nuget:?package=Tolitech.Queryable.Extensions&version=1.0.0-preview.3&prerelease
Tolitech.Queryable.Extensions
The Tolitech.Queryable.Extensions library provides utility methods to simplify querying operations on IQueryable data sources. It includes features for dynamic ordering and pagination, enabling efficient data retrieval and manipulation in LINQ queries.
Features
1. Dynamic Ordering
- Allows sorting
IQueryablecollections dynamically based on property names specified in a string. - Supports multi-level sorting with multiple fields and ascending/descending order.
2. Pagination
- Provides an easy way to implement paging logic with parameters for page number and page size.
Usage
1. Dynamic Ordering with OrderByExpression
Use the OrderByExpression method to dynamically sort an IQueryable collection based on a string that specifies the property and order.
Syntax
public static IQueryable<T> OrderByExpression<T>(
this IQueryable<T> query,
string orderByString
)
query: The data source to sort.orderByString: A comma-separated string specifying the sorting criteria. Use:to indicate sorting order (ascordesc). Default isasc.
Example
using Tolitech.Queryable.Extensions;
// Sample data
var products = new List<Product>
{
new Product { Id = 1, Name = "Apple", Price = 10 },
new Product { Id = 2, Name = "Orange", Price = 8 },
new Product { Id = 3, Name = "Banana", Price = 5 }
}.AsQueryable();
// Order by Name (ascending) and then Price (descending)
string orderByString = "Name,Price:desc";
var sortedProducts = products.OrderByExpression(orderByString);
foreach (var product in sortedProducts)
{
Console.WriteLine($"{product.Name} - {product.Price}");
}
Output
Apple - 10
Banana - 5
Orange - 8
2. Pagination with Paginate
Use the Paginate method to retrieve a specific page of items from an IQueryable collection.
Syntax
public static IQueryable<T> Paginate<T>(
this IQueryable<T> source,
int pageNumber,
int pageSize
)
source: The data source to paginate.pageNumber: The page number to retrieve (starting at 1).pageSize: The number of items per page.
Example
using Tolitech.Queryable.Extensions;
// Sample data
var products = new List<Product>
{
new Product { Id = 1, Name = "Apple", Price = 10 },
new Product { Id = 2, Name = "Orange", Price = 8 },
new Product { Id = 3, Name = "Banana", Price = 5 },
new Product { Id = 4, Name = "Grapes", Price = 15 },
new Product { Id = 5, Name = "Pineapple", Price = 20 }
}.AsQueryable();
// Paginate data: Page 2, 2 items per page
int pageNumber = 2;
int pageSize = 2;
var paginatedProducts = products.Paginate(pageNumber, pageSize);
foreach (var product in paginatedProducts)
{
Console.WriteLine($"{product.Name} - {product.Price}");
}
Output
Banana - 5
Grapes - 15
API Reference
1. OrderByExpression
- Dynamically sorts the
IQueryablebased on the specified string. - Supports multi-level sorting using a comma-separated list.
- Default sorting order is ascending (
asc).
Example Input Strings:
"Name": Sorts byNameascending."Price:desc": Sorts byPricedescending."Category,Price:desc": Sorts byCategoryascending, then byPricedescending.
2. Paginate
- Implements paging logic for
IQueryabledata sources. - Skips records based on
pageNumberand retrievespageSizenumber of items.
Example Parameters:
pageNumber = 1, pageSize = 5: Returns the first 5 items.pageNumber = 2, pageSize = 3: Skips the first 3 items and returns the next 3 items.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. 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. |
-
net9.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.0 | 209 | 11/12/2025 |