Важно понимать, что лямбда-выражения служат иной цели, чем методы расширения. Лямбда-выражения используются в основном как компактный синтаксис для определения реализации делегата или реализации функции. Дополнительным преимуществом лямбда-выражений является то, что вы можете определять обработчики событий и функции в теле другой функции, что полезно, если у вас есть простая функция, которая используется только внутри определенного метода. Просто определите функцию, используя тип Func <> или Action <> с синтаксисом lamda.
Я бы порекомендовал взять копию C # In Depth. В них подробно рассматриваются эти темы.
Вот эта функция как лямбда-выражение
private void Form1_Load(object sender, EventArgs e)
{
//signature of our function
Func<IEnumerable<Trade>, DateTime, DateTime, decimal> changePercentage = null;
//function implemented using lambda expression syntax
changePercentage += (trades, startDate, endDate) =>
{
var query = from trade in trades
where trade.TradeTime >= startDate
where trade.TradeTime <= endDate
orderby trade.TradeTime
descending
select trade;
return (query.First().Value - query.Last().Value) / query.First().Value * 100;
};
}