Конвертация строки в выражение LINQ C#
Предположим, есть следующий класс:
public class Test
{
public int LENGTH { get; set; }
public int VALUE { get; set; }
}
Со стороны БД в отдельной таблицы в nvarchar храню лямбду (например, x => x.VALUE >10). Как в коде перевести это в формат?
var exp = "x => x.VALUE >10"; //Для упрощения - здесь я бы из БД вытягивал значение
var list = new List<Test>();
list.Add(new Test {LENGTH = 0, VALUE = 1});
list.Add(new Test {LENGTH = 1, VALUE = 5});
list.Add(new Test {LENGTH = 2, VALUE = 11});
var result = list.Where(exp).ToList();
Источник: Stack Overflow на русском