最后,不支持LastOrDefault [英] Last and LastOrDefault not supported

查看:913
本文介绍了最后,不支持LastOrDefault的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图让在列表中的第一个值和最终值。查询操作符一()是支持的,但末() LastOrDefault()给出错误。我使用了末()运营商在不正确的方式。

  VAR purchaseBills = db.PurchaseBills.Where(
                        P => p.BillDate> = DateTime.Now.Date和放大器;&安培;
                        p.BillDate< DateTime.Now.AddDays(1).Date&安培;&安培;
                        !(布尔)p.IsDeleted).OrderBy(P => p.BillID);

   如果(purchaseBills.Count()大于0)
   {
       变种firstBill = purchaseBills.First(); //这是支持

       //尝试1
       变种lastBill = purchaseBills.Last(); // 不支持

       //尝试2
       变种lastBill = purchaseBills.LastOrDefault(); //不支持

       //尝试3
       VAR lastBill = purchaseBills.Reverse()一()。 //不支持

       textBoxPurchaseBillFrom.Text = firstBill.BillNo.ToString();
       textBoxPurchaseBillTo.Text = lastBill.BillNo.ToString();
   }
 

更新: --errors -

  

尝试1:查询运算符'最后'不支持

     

尝试2:不支持查询运算符LastOrDefault

     

尝试3:不支持查询运算符反向

解决方案
  • 而不是把它变成自己的名单通过调用了ToList()的ToArray()我想preFER使用 AsEnumerable()
  • 此外像其他人一样,你应该尝试 OrderByDescending()
  • 而不是计数()我会用任何()

I am trying to get the First value in the list and the last value. The query operator First() is supported but Last() and LastOrDefault() gives error. Am I using the Last() operator in incorrect manner.

   var purchaseBills = db.PurchaseBills.Where(
                        p => p.BillDate >= DateTime.Now.Date &&
                        p.BillDate < DateTime.Now.AddDays(1).Date &&
                        !(bool)p.IsDeleted).OrderBy(p => p.BillID);

   if (purchaseBills.Count() >0)
   {
       var firstBill= purchaseBills.First(); //This is supported

       //Attempt 1                    
       var lastBill = purchaseBills.Last(); // Not supported

       //Attempt 2
       var lastBill = purchaseBills.LastOrDefault(); //Not supported

       //Attempt 3
       var lastBill = purchaseBills.Reverse().First(); //Not supported

       textBoxPurchaseBillFrom.Text = firstBill.BillNo.ToString();
       textBoxPurchaseBillTo.Text = lastBill.BillNo.ToString();
   }

Update: --Errors--

Attempt 1: The query operator 'Last' is not supported.

Attempt 2: The query operator 'LastOrDefault' is not supported.

Attempt 3: The query operator 'Reverse' is not supported.

解决方案

  • Instead of putting it into an own list by calling ToList() or ToArray() i would prefer to use AsEnumerable().
  • Additionally like the others you should try OrderByDescending()
  • Instead of Count() i would use Any().

这篇关于最后,不支持LastOrDefault的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆