我正在尝试使用LINQ和lambda表达式访问每月的最后一行,但是我不确定该怎么做。
我已经进行了分组,但问题是我不认为它包含该行中的所有数据。
var tonerPrinterList = _tonerPrinterRepo.GetTonerPrinterForDevice(printerId, starDate, endDate, color).GroupBy(tp => new {tp.timestamp.Year, tp.timestamp.Month});
GetTonerPrinterForDevice生成的数据结构包含的列多于时间戳,例如nominalCoverage和printerID,我需要所有这些列
答案 0 :(得分:1)
我认为这应该可行。 您首先按日期排序,然后按月份分组,然后选择每个组的最后一个。
var tonerPrinterList = _tonerPrinterRepo.GetTonerPrinterForDevice(printerId, starDate, endDate, color)
.OrderBy(tp => tp.timestamp)
.GroupBy(tp => new {tp.timestamp.Year, tp.timestamp.Month})
.Select(group => group.LastOrDefault());