从组中选择唯一的项目,并通过ID获取相似的项目

本文关键字:项目 ID 获取 相似 选择 唯一 | 更新日期: 2023-09-27 18:08:34

var groups = db.Orders.GroupBy(x => x.OwnedOn);

假设groups返回以下结果:
组1:

[0] ID = 3      Name = "Uncharted 4"           OwnerID = 1    Owned On 21/08/2016
[1] ID = 6      Name = "Assassin's Creed"      OwnerID = 3    Owned On 21/08/2016
[2] ID = 4      Name = "Tomb Raider"           OwnerID = 2    Owned On 21/08/2016

组2:

[0] ID = 5      Name = "Assassin's Creed"      OwnerID = 7    Owned On 22/08/2016

集团3:

[0] ID = 21     Name = "FIFA 17"               OwnerID = 10    Owned On 23/08/2016
[1] ID = 12     Name = "Crash Bandicoot"       OwnerID = 5    Owned On 23/08/2016

Ok。现在我想执行Linq,这将给我一个项目从每组最高的OwnerID。所以预期的结果是:

[0] ID = 6      Name = "Assassin's Creed"      OwnerID = 3    Owned On 21/08/2016
[1] ID = 5      Name = "Assassin's Creed"      OwnerID = 7    Owned On 22/08/2016
[2] ID = 21     Name = "FIFA 17"               OwnerID = 10    Owned On 23/08/2016

从组中选择唯一的项目,并通过ID获取相似的项目

我相信这样做就可以了:

db.Orders.GroupBy(x => x.OwnedOn)
         .Select(grp => grp.OrderByDescending(e => e.OwnerID).First());

。净小提琴