using System.Collections.Generic;
public static void Main()
var expression = "return new List<int>() { 1, 2, 3, 4, 5 }.Where(x => x > MinValue && x < MaxValue)";
var list2a1 = Eval.Execute<List<int>>(expression, new { MinValue = 1, MaxValue = 5 });
FiddleHelper.WriteTable("2a. `Anonymous Type` (example 1)", list2a1);
var expression = "return new List<int>() { 1, 2, 3, 4, 5 }.Where(x => x > minValue && x < maxValue)";
var list2a2 = Eval.Execute<List<int>>(expression, new { minValue, maxValue });
FiddleHelper.WriteTable("2a. `Anonymous Type` (example 2)", list2a2);
var minMaxValue = new MinMaxValue() { MinValue = 1, MaxValue = 5 };
var expression = "return new List<int>() { 1, 2, 3, 4, 5 }.Where(x => x > MinValue && x < MaxValue)";
var list2b = Eval.Execute<List<int>>(expression, minMaxValue);
FiddleHelper.WriteTable("2b. `Class Instance`", list2b);
dynamic expando = new ExpandoObject();
var expression = "return new List<int>() { 1, 2, 3, 4, 5 }.Where(x => x > MinValue && x < MaxValue)";
var list2c = Eval.Execute<List<int>>(expression, expando);
FiddleHelper.WriteTable("2c. `ExpandoObject`", list2c);
var dict = new Dictionary<string, object>();
var expression = "return new List<int>() { 1, 2, 3, 4, 5 }.Where(x => x > MinValue && x < MaxValue)";
var list2d = Eval.Execute<List<int>>(expression, dict);
FiddleHelper.WriteTable("2d. `Dictionary<string, TValue>`", list2d);
public int MinValue { get; set; }
public int MaxValue { get; set; }