Я просто предоставляя простое объяснение того, как выражения work.From пример кода в примере, приведенном here пример -
System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
// Compile the expression tree into executable code.
Func<int, bool> deleg2 = expr.Compile();
// Invoke the method and print the output.
Console.WriteLine("deleg2(4) = {0}", deleg2(4));
//OUTPUT : deleg2(4) = True
Так простыми словами, у вас есть функция, которая возвращает истину, если нет < 5 как -
Func<int, bool> deleg = i => i < 5;
Таким образом, вы можете построить выражение делает то же самое, используя выше синтаксис, а затем передать его сказать Where
или некоторые вещи simliar.Simple пример -
int[] i={1,2,3,4,5}
System.Linq.Expressions.Expression<Func<int, bool>> expr = i => i < 5;
var result=i.Where(expr);//equivalent to i.Where(c=>c<5)
В вашем случае у вас есть таблица в качестве параметра, поэтому он примет объект таблицы и возвращает bool.
List<Employee> e= new List<Employee>();
e.Add(new Employee(1,"ABC",5000));
e.Add(new Employee(2,"ACC",5000));
e.Add(new Employee(3,"ADC",50009));
System.Linq.Expressions.Expression<Func<Employee, bool>> expr =e => e.Salary < 50000;
var result=e.Where(expr);//give all employee with salary<50000
+ 1..for 'addWhereClause' метод – Vishal
Отличная работа Если бы я мог голосовать вас больше, чем один раз, я бы сделал так. –