LINQ的最大记录日期

时间:2016-03-20 09:42:18

标签: vb.net linq

我是LINQ的新手,并且很难用最新的publish_Date获取记录

该表格包含Settlement_dateSettlement_PeriodPublishing_DateIndicated_Value

该表作为不同settlement_date的同一Settlement_Periodpublishing_date的多条记录

我所追踪的数据为settlement_dateSettlement_PeriodIndicated_Value,用于每个时期的最新publishing_date

Settlement_period介于148

之间

2 个答案:

答案 0 :(得分:0)

首先,您确实需要获取最新的发布日期:

var latestPublishingDate = collection.Max(x => x.Publishing_Date);

然后,仅使用该发布日期获取所有记录:

var result = collection.Where(x => x.Publishing_Date == latestPublishingDate);

虽然嵌套调用可能很诱人,但会重新计算每条记录的最大值。

答案 1 :(得分:0)

您需要做的就是使用GroupBy子句对数据进行分组。

Dim result = dataContext _
    .GroupBy(Function(x) New With {.SD = settlement_date, .SP = Settlement_Period}) _
    .Select(Function(grp) New With{ _
        .SettltementDate = grp.SD, _
        .SettlementPeriod = grp.SP, _
        .MaxPublishingDate = grp.Max(Function(d) d.publishing_date)})

最后我建议你读一下:
LINQ - Sample Queries (101 samples)
LINQ 101 Samples - Lambda Style