Я просто даю простое объяснение того, как работают выражения. Из примера кода в приведенном примере здесь приведен пример -
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
Итак, простыми словами, у вас естьфункция, которая возвращает true, если нет <5 like - </p>
Func<int, bool> deleg = i => i < 5;
. Таким образом, вы можете построить выражение, делающее то же самое, используя синтаксис выше, а затем передать его, чтобы сказать Where
или что-то похожее.
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