Accepted answer

From an optimization point of view, there should be no difference.

From a readability point of view, I'd think about whether you need the same logic in several places. If so, use a method and use a method group conversion. That way you don't repeat yourself, so you don't have to change several bits of code if your requirements change.

If you're only using the logic in a single place and it's short, a lambda expression captures the logic "inline" in a way which is usually easier to read IMO.

I typically avoid long lambda expressions, with the possible exception of use with TPL, e.g.

Parallel.ForEach(..., x => {
   // I'm quite happy to have a long-ish lambda here - it's like a foreach
   // loop body, basically.

Related Articles