C# 在LINQ to对象中使用Max()后,如何选择多个值?
我有以下LINQ查询:C# 在LINQ to对象中使用Max()后,如何选择多个值?,c#,linq,linq-to-objects,C#,Linq,Linq To Objects,我有以下LINQ查询: var query = (from p in obj1 group p by p.objID into g let totalSum = g.Sum(p => p.ObjPrice) select new { MyObjectID = g.Key, totalSum }) .Max(g => g.totalSum); 我想选择具有最高价格的对象的对象id和价格。我该怎么做呢?使用ORDERBY descendin
var query =
(from p in obj1
group p by p.objID into g
let totalSum = g.Sum(p => p.ObjPrice)
select new { MyObjectID = g.Key, totalSum })
.Max(g => g.totalSum);
我想选择具有最高价格的对象的对象id和价格。我该怎么做呢?使用ORDERBY descending子句并调用FirstOrDefault
{MyObjectId=g.key,totalSum}是一种法律构造吗?totalSum是否应分配给属性?只是问,因为我以前从未见过这种情况。@Matt Greer它在C3中工作,刚刚在LINQPad中试用;--和…,totalSum=totalSum}一样,但如果你问我的话,那是纯粹的巫毒。也适用于复合标识符,例如键,例如->将最后一个标识符-这里的键-作为键。@Matt:是的,它是有效的。创建匿名对象时,有两种方法可以设置属性:声明它并设置值MyObjectId=g.Key或声明一个变量以获取名称和值。所以这是等价的:new{MyObjectID=k.Key,totalSum=totalSum}如果您有多个具有最高价格的对象/组,这会起作用吗?我没有试过这个
(from p in obj1
group p by p.objID into g
let totalSum = g.Sum(p => p.ObjPrice)
orderby totalSum descending
select new { MyObjectID = g.Key, totalSum }).FirstOrDefault();