ниже - мой фрагмент кода
List<int> list = new List<int>() { 1, 2, 3, 4, 5 };
Func<int, bool> f = c => c > 3;
var result = list.Where(f);
Console.WriteLine(result.ToList());
var param = Expression.Parameter(typeof(int),"c");
var constant = Expression.Constant(3);
var body = Expression.GreaterThanOrEqual(param, constant);
var funcType = typeof(Func<,>).MakeGenericType( typeof(int), typeof(bool));
var funcDelegate = Expression.Lambda(funcType, body, param);
result = list.Where(funcDelegate);
Console.WriteLine(result.ToList());
Console.ReadLine();
Система сказала мне result = list.Where(funcDelegate);
неверно, не может преобразовать "System.Linq.Expressions.LambdaExpression" to "System.Func<int,int,bool>"
Я думаю, что должен допустить ошибку при использовании метода MakeGenericType,Как я могу построить правильное универсальное лямбда-выражение с помощью MakeGenericType?
спасибо!