LINQ按某一列中每个唯一值的最高值排序

本文关键字:唯一 排序 最高值 一列 LINQ | 更新日期: 2023-09-27 18:01:15

我想知道如何使用linq在一个名为bids的表中选择领先的出价。

结果需要对每个唯一的userId进行最高出价,并显示bidValue 订购的结果

投标表格:

bidId 1, userid 1, bidValue = 10
bidId 2, userid 2, bidValue = 20
bidId 3, userid 3, bidValue = 20
bidId 4, userid 1, bidValue = 30
bidId 5, userid 2, bidValue = 40
bidId 6, userid 1, bidValue = 50

结果:

bidId 6, userid 1, bidValue 50
bidId 5, userid 2, bidValue 40
bidId 3, userid 3, bidValue 20

LINQ按某一列中每个唯一值的最高值排序

这样的东西应该能在中工作

var query = (from bid in context.Bids
            group bid by bid.userid into bidg
            select new
            {
               bidId = bidg.OrderByDescending(b => b.bidValue).First().bidid,
               userid = bidg.Key,
               bidValue = bidg.Select(b => b.bidValue).Max()
            }).OrderByDescending(b => b.bidvalue);