A runtime parser for .NET that evaluates string expressions (formulas, method calls) by building dynamic LINQ expression trees.
NReco LambdaParser is a .NET library that parses and evaluates string expressions at runtime by building dynamic LINQ expression trees and compiling them to lambda delegates. It solves the need for runtime formula evaluation, method invocation, and property access in applications where expressions are not known at compile time, such as user-defined calculations or dynamic query builders.
.NET developers building applications that require runtime evaluation of expressions, such as formula engines, reporting tools, dynamic query systems, or configuration-driven calculations.
Developers choose LambdaParser for its seamless integration with .NET's LINQ ecosystem, support for complex expression syntax, runtime type resolution, and performance optimizations like caching, making it a robust alternative to manual expression tree construction or scripting engines.
Runtime parser for string expressions (formulas, method calls). Builds dynamic LINQ expression tree and compiles it to lambda delegate.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compiles string expressions directly into LINQ expression trees, enabling seamless use with .NET's querying and data manipulation frameworks without manual tree construction.
Automatically handles type conversions at runtime, similar to dynamic languages, reducing boilerplate for expressions with mixed data types.
Supports a wide range of operations including arithmetic, conditionals, method calls, and data structures like arrays and dictionaries, covering common formula evaluation needs.
Built-in expression caching via the UseCache property optimizes repeated evaluations, as highlighted in the README for scenarios with frequent same-expression usage.
Runtime compilation of user-provided expressions can introduce code injection risks if input is not sanitized, limiting use in high-security environments without additional safeguards.
Lacks support for modern C# features such as asynchronous operations or complex LINQ queries, which may require workarounds or alternative libraries for advanced scenarios.
Enabling cache for performance can lead to increased memory usage when evaluating a large number of unique expressions, as noted in the README's recommendation to disable cache in such cases.