using System.Collections.Generic;
public static void Main()
List<Tuple<string, string>> parameterTypeAndNames = new List<Tuple<string, string>>();
parameterTypeAndNames.Add(new Tuple<string, string>("int", "X"));
parameterTypeAndNames.Add(new Tuple<string, string>("int", "Y"));
parameterTypeAndNames.Add(new Tuple<string, string>("int", "Z"));
string parameterTypes = string.Join(",", parameterTypeAndNames.Select(x => x.Item1));
string parameterNames = string.Join(",", parameterTypeAndNames.Select(x => "\"" + x.Item2 + "\""));
var codeToCompile = string.Format("context.Compile<Func<{0}, bool>>(code, {1})", parameterTypes, parameterNames);
var context = new EvalContext();
Console.WriteLine(codeToCompile);
var compiled = context.Execute(codeToCompile, new { context, code });
var dynamicCompiled = (dynamic)compiled;
Console.WriteLine(dynamicCompiled(1, 2, 3));
Console.WriteLine(dynamicCompiled(1, 4, 3));