我是LINQ的新手,并且很难用最新的publish_Date获取记录
该表格包含Settlement_date
,Settlement_Period
,Publishing_Date
和Indicated_Value
该表作为不同settlement_date
的同一Settlement_Period
和publishing_date
的多条记录
我所追踪的数据为settlement_date
,Settlement_Period
,Indicated_Value
,用于每个时期的最新publishing_date
Settlement_period
介于1
和48
答案 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