我正在努力按TOP版本号过滤一系列结果。下面为我提供了所有产品审批者对象和不同的版本信息:
foreach (ModelLib.ProductApprover app in products)
{
if(distinct.Where(p => p.Product.ID == app.Product.ID && p.Version == app.Version).FirstOrDefault() == null)
distinct.Add(app);
}
然后,我想执行以下查询,仅选择编号最高的产品。有人可以协助我进行这项工作吗?
提前谢谢。
每个产品的顶级版本:
var topVersions = products
.GroupBy(arg => arg.ProductId)
.Select(arg => new { ProductId = arg.Key, TopVersion = arg.Max(x => x.Version) })
.ToList();
或具有顶级版本的产品:
var productsThatHaveTheTopVersion = products
.Where(arg => arg.Version == products.Max(arg.Version))
.ToList();
foreach (ModelLib.ProductApprover app in products)
{
if(distinct.Where(p => p.Product.ID == app.Product.ID)
.OrderByDescending(p=>p.Version)
.FirstOrDefault( p=>p.Version == app.Version) != null)
distinct.Add(app);
}