我正在尝试从我的班级QCA中选择销售额。我正在使用linq来查询QCA的集合。我希望最新的一个日期当我尝试这个代码我得到错误告诉我它无法将IEnumerable转换为十进制。 我哪里错了?
SalesTotal = (from q in QuickCreditAssessments orderby q.FinancialsDate ascending
select q.Sales).Skip(1).Take(1);
答案 0 :(得分:6)
如果你想要一个人不使用Take
但是First/FirstOrDefault/Single/SingleOrDefault
:
decimal salesTotal = (from q in QuickCreditAssessments
orderby q.FinancialsDate ascending
select q.Sales)
.Skip(1) // now you get the second to last by Date
.FirstOrDefault();
顺便说一句,如果你想要"最近的一个按日期"你应该使用descending
。
答案 1 :(得分:2)
Take
返回IEnumerable<T>
,而不是Take in your case我会使用FirstOrDefault()
,如下所示:
SalesTotal = (from q in QuickCreditAssessments orderby q.FinancialsDate ascending
select q.Sales).Skip(1).FirstOrDefault();