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

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();
}
更新:

最佳答案

  • 与其通过调用ToList()ToArray()放入自己的列表中,不如使用AsEnumerable()
  • 另外,您应该像其他人一样尝试OrderByDescending()
  • 我将使用Count()代替Any()
  • 关于c# - 不支持Last和LastOrDefault,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7253529/

    10-10 23:38