我很难按TOP版本号过滤掉一系列结果。以下内容为我提供了所有ProductApprover对象和不同的版本信息:
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);
}
然后,我想进行以下查询,仅选择最高版本编号的产品。请问有人能协助我吗?
提前致谢。
答案 0 :(得分:0)
每种产品的最佳版本:
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();
答案 1 :(得分:0)
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);
}