1

基本上我有一个有两个属性的类 -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);

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

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

4

1 回答 1

5

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

var list = List.GroupBy(t => t.ParentProduct)
               .OrderBy(group => group.Sum(t => t.NumberOfOrders))
               .Select(group => group.Key);
于 2013-10-03T14:43:21.523 回答