Lambda expressions are a very powerful .NET feature that can significantly simplify your code in particular cases. Unfortunately, convenience has its price. Wrong usage of lambdas can significantly impact app performance. Let’s look at what exactly can go wrong.The trick is in how lambdas work. To implement a lambda (which is a sort of a local function), the compiler has to create a delegate. Obviously, each time a lambda is called, a delegate is created as well. This means that if the lambda stays on a hot path (is called frequently), it will generate huge memory traffic.Is there anything we can do? Fortunately, .NET developers have already thought about this and implemented a caching mechanism for delegates.
Source: Unusual Ways of Boosting Up App Performance. Lambdas and LINQs | ReSharper Ultimate Blog