Adonix.StringToLinq
1.0.2
dotnet add package Adonix.StringToLinq --version 1.0.2
NuGet\Install-Package Adonix.StringToLinq -Version 1.0.2
<PackageReference Include="Adonix.StringToLinq" Version="1.0.2" />
<PackageVersion Include="Adonix.StringToLinq" Version="1.0.2" />
<PackageReference Include="Adonix.StringToLinq" />
paket add Adonix.StringToLinq --version 1.0.2
#r "nuget: Adonix.StringToLinq, 1.0.2"
#:package Adonix.StringToLinq@1.0.2
#addin nuget:?package=Adonix.StringToLinq&version=1.0.2
#tool nuget:?package=Adonix.StringToLinq&version=1.0.2
StringToLinq
StringToLinq is a simple .NET library that transforms string expressions into Linq Expressions. This library enables dynamic generation of complex Linq queries from string inputs, providing a level of flexibility for Linq-based querying.
Features
- Converts string expressions into Linq Expressions.
- Supports arithmetic, comparison, and logical operators.
- Supports nested types and properties.
- Provides a customizable syntax.
- Fully compatible with Linq's Expression<Func<T, bool>> predicates.
Quick Start
Install the library through NuGet or by cloning the repository. (Nuget soon)
Define the string that contains the expression you want to parse.
string input = "Name eq \"John Doe\" and (Age gt 30 or Department eq \"Sales\")";
Use the ToPredicate method from StringExpression to convert the string expression into a Linq Expression.
Expression<Func<Employee, bool>> expr = StringExpression.ToPredicate<Employee>(input);
Use the generated expression in a Linq query.
IEnumerable<Employee> results = employees.AsQueryable().Where(expr);
How it Works
The library works in three steps:
- Parsing the input string into a list of tokens.
- Building an Abstract Syntax Tree (AST) from the tokens.
- Generating a Linq Expression from the AST.
These steps are performed by the ToPredicate method.
Contributions
Contributions are welcome! Please feel free to submit a pull request.
License
No license by take the code!
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net7.0 is compatible. 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. |
-
net7.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.