Query grouped result in CSharp
Description
The following code shows how to query grouped result.
Example
using System;// w ww . j av a2 s . co m
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Customer
{
public string ID { get; set; }
public string City { get; set; }
public string Country { get; set; }
public string Region { get; set; }
public decimal Sales { get; set; }
}
class Program
{
static void Main(string[] args)
{
List<Customer> customers = new List<Customer> {
new Customer { ID="Q", City="London", Country="UK", Region="Europe", Sales=8000 },
new Customer { ID="R", City="Beijing", Country="China", Region="Asia", Sales=9000 },
new Customer { ID="T", City="Lima", Country="Peru", Region="South America", Sales=2002 }
};
var queryResults =
from c in customers
group c by c.Region into cg
select new { TotalSales = cg.Sum(c => c.Sales), Region = cg.Key };
var orderedResults =
from cg in queryResults
orderby cg.TotalSales descending
select cg;
foreach (var item in orderedResults)
{
Console.WriteLine(item.TotalSales + "\t: " + item.Region);
}
}
}
The code above generates the following result.