I understand a lambda expression is in essence an inline delegate declaration to prevent the extra step
example
delegate int Square(int x) public class
You must understand the Func behavior, where the last parameter is always the output or result
Func<1, 2, outPut>
Func Add = (x, y) => x + y; Func diff = (x, y) => x - y; Func multi = (x, y) => x * y;