Выберите Func в лямбда-выражении - PullRequest
1 голос
/ 14 февраля 2011

Привет, эксперты Я хочу использовать лямбда-выражение и написать этот код:

Func<Regions, SelectAllRegion> Select = r => new {r.RegionID,r.RegionDescription};
        clsr.SelectAll<SelectAllRegion>(Select);

но у меня не работает. Поднимается эта ошибка:

Cannot implicitly convert type 'AnonymousType#1' to 'SelectAllRegion'

Как мне написать этот код?

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Ваша первая строка возвращает анонимный тип. Вы хотите вернуть SelectAllRegion - примерно так:

Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion()
    {RegionID = r.RegionID, RegionDescription = r.RegionDescription};
1 голос
/ 14 февраля 2011

Я подозреваю, что вы хотите:

Func<Regions, SelectAllRegion> Select = r => new SelectAllRegion {
                                      RegionID = r.RegionID,
                                      RegionDescription = r.RegionDescription };

Предполагается, что у вас есть подходящий SelectAllRegion класс. Отправленное вами лямбда-выражение преобразует Regions в анонимный тип, который всегда является результатом new { ... }. Это может только (полезно) использоваться в контексте вывода типа, а не простого объявления переменной, как вы получили здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...