使用Linq转换为Decimal

时间:2015-04-02 13:59:14

标签: c# linq

我正在尝试从我的班级QCA中选择销售额。我正在使用linq来查询QCA的集合。我希望最新的一个日期当我尝试这个代码我得到错误告诉我它无法将IEnumerable转换为十进制。 我哪里错了?

SalesTotal = (from q in QuickCreditAssessments orderby q.FinancialsDate ascending
                              select q.Sales).Skip(1).Take(1);

2 个答案:

答案 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();