如何按LINQ查询的新{}部分中包含的列进行排序?

时间:2009-11-10 09:02:21

标签: c# linq

以下使用Northwind数据库并列出了包含四列的产品组:最低价,最高价,平均价和总价。

我如何按总价格排序?

var products = from product in Products
group product by product.Supplier into groupedProducts
//orderby groupedProducts.Key.TotalPrice;
select new
{
    groupedProducts.Key.CompanyName,
    LowestPrice = groupedProducts.Min(p => p.UnitPrice),
    HighestPrice = groupedProducts.Max(p => p.UnitPrice),
    AveragePrice = groupedProducts.Average(p => p.UnitPrice),
    TotalPrice = groupedProducts.Sum(p => p.UnitPrice)
};
//order by groupedProducts.Key.TotalPrice;

2 个答案:

答案 0 :(得分:4)

这应该有效:

var products = (from ... ).OrderBy(item => item.TotalPrice);

答案 1 :(得分:1)

这个怎么样?

var products = from product in Products
               group product by product.Supplier into groupedProducts
               let totalPrice = groupedProducts.Sum(p => p.UnitPrice)
               orderby totalPrice
               select new
               {
                   groupedProducts.Key.CompanyName,
                   LowestPrice = groupedProducts.Min(p => p.UnitPrice),
                   HighestPrice = groupedProducts.Max(p => p.UnitPrice),
                   AveragePrice = groupedProducts.Average(p => p.UnitPrice),
                   TotalPrice = totalPrice
               };