Сравнение: LINQ vs LAMBDA Expression

Мне нужно обсудить работу LINQ и выражения Lambda.

Какой из них лучше?

Ответы

Ответ 1

Я думаю, вы имеете в виду query expression, когда речь идет о LINQ здесь.

Они эквивалентны. Компилятор меняет query expression на эквивалентное выражение Lambda перед его компиляцией, поэтому сгенерированный IL точно такой же.

Пример

var result = select s from intarray
             where s < 5
             select s + 1;

точно совпадает с

var result = intarray.Where( s => s < 5).Select( s => s+1);

Обратите внимание, что если вы пишете выражение запроса следующим образом:

var result = select s from intarray
             where s < 5
             select s;

Он преобразуется в:

var result = intarray.Where( s => s < 5);

Последний вызов Select исключен, поскольку он избыточен.

Ответ 2

быстрое сравнение в отражателе, вероятно, сделает трюк. Тем не менее, с точки зрения "предпочтения", я нахожу выражения лямбда легче следовать и писать и использовать их по всем направлениям, будь то объекты, xml или что-то еще.

Если производительность пренебрежимо мала, я пойду с тем, который лучше всего подходит вам.

Я действительно начал небольшую тему, рассматривая методы linq, которые могут представлять интерес:

Каков ваш любимый метод linq или "трюк"

веселит..