Introduction

Gridify is a dynamic LINQ library that simplifies the process of converting strings to LINQ queries. With exceptional performance and ease-of-use, Gridify makes it effortless to apply filtering, sorting, and pagination using text-based data.

Features

  • Fast and easy to use
  • Supports filtering, sorting, and pagination
  • Supports string to LINQ conversion
  • Supports nested queries and sub-collections
  • Supports string to object mapping
  • Supports query compilation
  • Supports collection indexes
  • Custom Operators
  • Compatible with ORMs, especially Entity Framework
  • Can be used on every collection that LINQ supports
  • Compatible with object-mappers like AutoMapper

Examples

To better illustrate how Gridify works, we've prepared a few examples:

Performance

Filtering can be the most expensive feature in Gridify. The following benchmark compares filtering in the most well-known dynamic LINQ libraries. As you can see, Gridify has the closest result to native LINQ:

MethodMeanErrorRatioGen 0Gen 1Allocated
Native LINQ806.3 us4.89 us1.004.88281.953135 KB
Gridify839.6 us5.69 us1.045.85942.929739 KB
DynamicLinq973.8 us8.65 us1.2119.53139.7656123 KB
Sieve1,299.7 us12.74 us1.617.81253.906353 KB
Fop3,498.6 us29.45 us4.3454.687527.3438348 KB
CSharp Scripting231,510.6 us4,406.95 us287.133000.00001000.000024,198 KB

BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22000 11th Gen Intel Core i5-11400F 2.60GHz, 1 CPU, 12 logical and 6 physical cores .NET SDK=6.0.100 [Host] : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT DefaultJob : .NET 6.0.0 (6.0.21.52210), X64 RyuJIT

This Benchmark is available Hereopen in new window