使用Linq在分组列表中查找最大值
我有一个linq表达式,它以组的形式返回事务。每个事务都有一个数值,我现在需要知道返回的所有事务的最高值是多少。此值保存在名为TransactionId的字段中 下面是我用来获取分组列表的表达式使用Linq在分组列表中查找最大值,linq,group-by,Linq,Group By,我有一个linq表达式,它以组的形式返回事务。每个事务都有一个数值,我现在需要知道返回的所有事务的最高值是多少。此值保存在名为TransactionId的字段中 下面是我用来获取分组列表的表达式 var transactions = ctx.MyTransactions .Where (x => x.AdapterId == Id) .Grou
var transactions = ctx.MyTransactions
.Where (x => x.AdapterId == Id)
.GroupBy(x => x.DeviceTypeId);
我现在需要在“transactions”分组列表上编写一个表达式,以查找TransactionId字段的“max”。我尝试过不同的想法,但似乎都不符合分组结果。我是linq的新手,所以我不知道该怎么做。您是否尝试过在每个组中找到最大值,然后在所有组中找到最大值
int max = transactions.Max(g => g.Max(t => t.TransactionId));
或者您可以再次查询数据库:
int max = ctx.MyTransactions
.Where(x => x.AdapterId == Id)
.Max(t => t.TransactionId);
这将为您提供每组的最大值
var transactionIds = ctx.MyTransactions
.Where (x => x.AdapterId == Id)
.GroupBy(x => x.DeviceTypeId,
g => new {
DeviceTypeId = g.Key,
MaxTransaction = g.Max(x => x.TransactionId)
});
你想要每组的最大值吗?嗯。。。我对这个问题的解释有所不同,因为他说“所有交易返回的最高价值”@追溯编码员:如果你能解释一下你的意思,那就太好了。我在寻找所有分组项目的总体最大值。谢谢你的澄清。