Вопрос по linq – Когда использовать лямбда-выражения вместо предложения Where в LINQ

6

Я действительно копался в LINQ, и я пытаюсь разобраться в этом бизнесе лямбда-выражений. Я просто не вижу преимущества некоторых нюансов синтаксиса. Прежде всего, мне кажется, что лямбда-выражение - это просто другой способ использования предложения Where. Почему бы тогда просто не использовать предложение Where? Является ли лямбда-выражение более эффективным?

Это просто еще одно синтаксическое дополнение для привлечения программистов из другой группы, чтобы они чувствовали себя более комфортно в C #? Существуют ли другие лучшие варианты использования лямбда-выражений, с которыми я еще не сталкивался?

Прочитайте это, прежде чем задавать такие вопросы. :)books.google.lv/… Arnis Lapsa

Ваш Ответ

4   ответа
1

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

Основное отличие состоит в том, что с помощью лямбда-синтаксиса вы можете связать любой метод расширения, работающий и возвращающийIEnumerable<T>, С синтаксисом запроса вы ограничены конкретными методами расширения, явно поддерживаемыми языком (зависит от языка)

Реально использовать или не использовать синтаксис запроса - это вопрос личных предпочтений.

0
Answers consisting of just a link are not considered usefulError: User Rate Limit ExceededhereError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
9

Посмотрите на эту статью:Синтаксис запроса LINQ против синтаксиса метода :

In general, we recommend query syntax because it is usually simpler and more readable; however there is no semantic difference between method syntax and query syntax. In addition, some queries, such as those that retrieve the number of elements that match a specified condition, or that retrieve the element that has the maximum value in a source sequence, can only be expressed as method calls. The reference documentation for the standard query operators in the System.Linq namespace generally uses method syntax. Therefore, even when getting started writing LINQ queries, it is useful to be familiar with how to use method syntax in queries and in query expressions themselves.

А также этот вопрос:LINQ: точечная нотация против выражения запроса

Error: User Rate Limit Exceeded
1

Читатьэтот, Ваши запросы LINQ будут преобразованы в лямбда-выражения компилятором во время выполнения.

Похожие вопросы