Inline лямбда - узнать цену с последней датой - PullRequest
0 голосов
/ 24 мая 2011

MVC ViewPage содержит пользователей (intranet.Model.User).У каждого пользователя может быть одна или несколько ставок оплаты, представленных в модели как intranet.model.User.UserRates.

Мне нужно иметь возможность отображать последнюю ставку оплаты для пользователя с помощью встроенного лямбда-выражения, но яУ меня нет успеха (вместо сообщения об ошибке отображается сообщение об ошибке).

Мое последнее воплощение:

     
        <% var latestRate = item.UserRates
                               .GroupBy(hr=>hr.rate)
                               .Select(g=>g.Single(
                                  d=>d.effective == g.Max(m=>m.effective))
                                ); %></p>

<code>     <%= Html.Encode(latestRate) %>
  </td> 
</code>

Сообщение об ошибке встолбец:

System.Linq.Enumerable + WhereSelectEnumerableIterator 2[System.Linq.IGrouping 2 [System.Decimal, intranet.Models.UserRate], intranet.Models.UserRate]

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Я не могу точно выяснить, как выглядят ваши данные, но не могли бы вы сделать что-то подобное?

var latestRate = item.UserRates
                     .OrderByDescending(x => x.effective)
                     .First();
0 голосов
/ 25 мая 2011

Финальная итерация (пока):

  <% var userRate = item.UserRates
                        .OrderByDescending(hr=>hr.effective)
                        .FirstOrDefault() ?? new intranet.Models.UserRate(); %>

  <td class="hrlyRate">                                         
      <%= Html.Encode(string.Format("{0:0.000}", userRate.rate))%>
  </td> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...