tags:

views:

44

answers:

2

The following uses the Northwind database and lists out product groups with four columns: lowest, highest, average, and total price.

How can I sort by total price?

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;
+4  A: 

This should work:

var products = (from ... ).OrderBy(item => item.TotalPrice);
Konamiman
+1  A: 

How about this?

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
               };
Mark Seemann