Нет разницы в производительности между запросами LINQ и лямбда-выражениями.
Вы должны полностью понять, как работает функция LINQ (и Lambda, и запросы LINQ) в .Net, прежде чем вы будете рассматривать проблемы с производительностью.
По сути, вы можете работать с любым из запросов LINQ иЛямбда-выражения ..
LINQ Queries
Это читаемый запрос высокого уровня.
Itпреобразуется в эквивалентные лямбда-выражения, а лямбда-выражения добавляются в виде узлов в дерево выражений. Дерево выражений, которое составляет структуру лямбда-выражений. Это делается компилятором.
Поставщик запросов просматривает выражения (добавляются в виде узлов в дереве выражений) и создает эквивалентные операторы SQL-запросов, таким образом эквивалентный SQL-запрос, сформированный во время выполнения.
Тип возврата: набор результатов (IEnumerable).
Лямбда-выражения
Это набор выражений / операторов, создающий делегат / дерево выражений. Он может быть передан функции в качестве аргумента.
Он поддерживает все методы LINQ, такие как запросы LINQ. (Where, Select, Count, Sum и т. Д.)
Формируется дерево выражений, которое создает структуру лямбда-выражений. Это делается компилятором.
Поставщик запросов просматривает выражения (дерево выражений) и создает эквивалентный SQL-запрос во время выполнения.
Тип возвращаемого значения:Delagate / Expression Tree
Что лучше?
Вы можете понять LINQ (Queries, Lambda) Если вы посмотрите на вышеупомянутые пункты.
Преимущество запроса LINQ - он доступен для чтения.
Преимущество лямбды
Преимущество лямбды будет заключаться в том, что она создает делегата и с помощьюВы можете просто передать входные параметры и получить результат для разных входных параметров. Вам также не нужно писать разные запросы для разных критериев.
Вы можете создать динамический запрос с помощью Lambdaвыражения и деревья выражений.
Вы можете использовать лямбда-выражения, если хотите передать результат оператора (ов) в метод в качестве аргумента.
выражения короче.
Так что лямбда-выражение лучше всего подходит для разработки над запросами LINQ.