不支持 Last 和 LastOrDefault

时间:2023-02-17
本文介绍了不支持 Last 和 LastOrDefault的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取列表中的第一个和最后一个值.支持查询运算符 First(),但 Last()LastOrDefault() 会出错.我是否错误地使用了 Last() 运算符?

I am trying to get the first and last values in a list. The query operator First() is supported but Last() and LastOrDefault() give an error. Am I using the Last() operator incorrectly?

var purchaseBills = db.PurchaseBills.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();
}

更新:

--错误--

尝试 1:不支持查询运算符Last".

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

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

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

尝试 3:不支持查询运算符Reverse".

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

推荐答案

  • 我宁愿使用 AsEnumerable(),而不是通过调用 ToList()ToArray() 将其放入自己的列表中.
  • 另外像其他人一样,您应该尝试 OrderByDescending()
  • 我会使用 Any() 而不是 Count().
    • 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().
    • 这篇关于不支持 Last 和 LastOrDefault的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

上一篇:身份插入和 LINQ to SQL 下一篇:不允许在查询中显式构造实体类型 [MyClass]

相关文章

最新文章