There are two fairly simple options for creating delegates without using lambda expressions:
Write a method and use method group transform
private static bool GreaterThan5(int x) { return x > 5; } ... var query = list.Where(GreaterThan5);
Use anonymous method
var query = list.Where(delegate(int x) { return x > 5; });
None of them are as clear as using the lambda expression. For more complex examples, when you really want to capture local variables, the "write a separate method" version will be much more complicated.
source share