using System.Linq.Expressions;
using System.Collections.Generic;
public static void Main()
var numbers = new List<int> { 1, 2, 3, 4 }.AsQueryable();
var param1 = Expression.Parameter(typeof(int), "a");
var multiplier = Expression.Constant(10, typeof(int));
var multiplyExpr = Expression.Multiply(param1, multiplier);
var convertExpr = Expression.Convert(param1, typeof(double));
var methodCall = typeof(Math).GetMethod("Sqrt", new[] { typeof(double) });
var sqrtExpr = Expression.Call(methodCall, convertExpr);
var lambdaExpr = Expression.Lambda<Func<int, double>>(sqrtExpr, param1);
var total = numbers.Select(lambdaExpr);
foreach (var element in total)
Console.WriteLine(element);
var method = lambdaExpr.Compile();
Console.WriteLine(method(144));