是否可以按groupby中不存在的列进行排序?

时间:2014-02-19 14:23:41

标签: c# linq

例如,我有这样的查询:

var data= from c in customers
          join o in orders
          on c.id=o.id
         group new { c, o } by new { o.customerid, c.FirstName, c.LastName, c.City } into customergroups
         orderby customergroup.select(x=>x.o.quantity)

但是,它给了我空的结果集..

请建议..

1 个答案:

答案 0 :(得分:2)

是的,只要表达式生成可比较的对象,就可以按任何顺序对组进行排序。例如,您可以按最小最大数量 * 订购,但不能仅按数量订购,因为可能有许多不同的数量一个小组。

var data= from c in customers
      join o in orders
      on c.id=o.id
     group new { c, o } by new { o.customerid, c.FirstName, c.LastName, c.City } into customergroups
     orderby customergroup.Max(x=>x.o.quantity);

* 您也可以使用First(x=>x.o.quantity)Last(x=>x.o.quantity),但订单是任意的。