Linq groupby和sum

Pet*_*ete 1 c# linq group-by

基本上我有一个有两个属性的课 - ParentProductNumberOfOrders.我想选择不同的父产品,按订单总数排序,所以我使用了以下Linq:

var list = List.GroupBy(t => t.ParentProduct)
               .Select(group => new { Product = group.Key, NumberOfOrders = group.Sum(t => t.NumberOfOrders) })
               .OrderBy(o => o.NumberOfOrders)
                     .Select(o => o.Product);
Run Code Online (Sandbox Code Playgroud)

List所有子产品的列表在哪里是
t包含订单数量的子产品,而父产品
o是创建的新对象

我想知道是否有更好的方法来获得按订单总数排序的不同父产品列表,因为上面似乎做了很多选择.

juh*_*arr 5

您可以删除中间选择,只需按总和对组进行排序,然后选择产品.

var list = List.GroupBy(t => t.ParentProduct)
               .OrderBy(group => group.Sum(t => t.NumberOfOrders))
               .Select(group => group.Key);
Run Code Online (Sandbox Code Playgroud)