Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ключевое слово new в лямбда операторов / 5 сообщений из 5, страница 1 из 1
16.03.2014, 16:51
    #38587566
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое слово new в лямбда операторов
Подскажите, что означает "new" в этом выражении:
Код: c#
1.
2.
3.
4.
5.
6.
var query = context.Products
        .Select(product => new
        {
            ProductId = product.ProductID,
            ProductName = product.Name
        });
...
Рейтинг: 0 / 0
16.03.2014, 17:27
    #38587578
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое слово new в лямбда операторов
_jt, new здесь обозначает создание объекта как и в любом другом контексте. Создаем мы анонимный объект используя синтаксис object initializer выполняя т.н. проекцию чтобы получить только часть полей.
...
Рейтинг: 0 / 0
16.03.2014, 18:04
    #38587586
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое слово new в лямбда операторов
Кажется понял. Получается что это не лямбда операторов,а лямбда выражение создающее объект анонимного типа и инициализирующее его свойства?
...
Рейтинг: 0 / 0
16.03.2014, 18:51
    #38587603
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое слово new в лямбда операторов
_jt, Не надо путать лямбда-оператор с лямбда-выражением.

Зто лямбда-выражение:
Код: c#
1.
product => new { ProductId = product.ProductID, ProductName = product.Name }

Где => это лямбда оператор разделяющий аргументы и тело анонимной функции. new { } оператор создания нового объекта. То что мы испольузем new { } внутри лямбды не означает, что они взаимосвязаны. Анонимный объект можно создать в виде отдельной переменной, если это необходимо:
Код: c#
1.
var person = new { Id = 1, Name = "John Doe" };
...
Рейтинг: 0 / 0
16.03.2014, 18:57
    #38587609
_jt
_jt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое слово new в лямбда операторов
Понял, спасибо
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Ключевое слово new в лямбда операторов / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]