using System.Collections.Generic;
using System.Linq.Expressions;
using System.Linq.Dynamic.Core;
using System.Linq.Dynamic.Core.Parser;
using System.Linq.Dynamic.Core.CustomTypeProviders;
using System.ComponentModel.DataAnnotations;
using FastExpressionCompiler;
public static void Main()
ParameterExpression x = Expression.Parameter(typeof(double), "threshold");
ParameterExpression y = Expression.Parameter(typeof(List<double>), "mylist");
var symbols = new[] { x, y };
Expression body = new ExpressionParser(symbols, "mylist.Where(c => c > threshold).First()", null, new ParsingConfig()).Parse(typeof(double));
LambdaExpression e = Expression.Lambda(body, symbols);
var result = c.DynamicInvoke(new object[]{ 3.0, new List<double>{1.0,2.0,3.0,4.0 } });
Console.WriteLine(result);