MVC ViewPage包含用户(intranet.Model.User)。每个用户可以在模型中将一个或多个工资率表示为intranet.model.User.UserRates。
我需要能够使用内联Lambda表达式显示每个用户的最新付费率,但我没有成功(显示错误消息而不是付费率)。
我最近的化身是:
<% var latestRate = item.UserRates
.GroupBy(hr=>hr.rate)
.Select(g=>g.Single(
d=>d.effective == g.Max(m=>m.effective))
); %>
<%= Html.Encode(latestRate) %>
</td>
列中的错误消息是:
System.Linq.Enumerable + WhereSelectEnumerableIterator
2[System.Linq.IGrouping
2 [System.Decimal,intranet.Models.UserRate],intranet.Models.UserRate]
答案 0 :(得分:1)
我无法确切地知道你的数据是什么样的,但是你不能做这样的事情吗?
var latestRate = item.UserRates
.OrderByDescending(x => x.effective)
.First();
答案 1 :(得分:0)
最后的迭代(现在):
<% 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>