Linq查询分组和最大日期

时间:2014-09-08 10:05:21

标签: c# linq

class ProductVersion
{
   string ProductId
   string VersionNumber
   VersionType versionType
   DateTime ReleaseDate
}

所以我需要从ProductVersions集合中获取List,其中包含按ProductId和VersionType分组的最新ReleaseDate。

2 个答案:

答案 0 :(得分:4)

对该组使用匿名类型:

var prodVersionList = AllProductVersions
    .GroupBy(pv => new { pv.ProductId, pv.versionType })
    .Select(g => g.OrderByDescending(pv => pv.ReleaseDate).First())
    .ToList();

您必须制作ProductVersion的属性和字段public,否则您无法访问它们。

答案 1 :(得分:0)

var result = productVersions
    .GroupBy(x => new { x.ProductId, x.versionType })
    .Select(x => new { x.Key.ProductId, x.Key.versionType, LatestReleaseDate = x.Max(y => y.ReleaseDate) })
    .ToList();