Mega Code Archive

 
Categories / C# Tutorial / LINQ
 

Group Query

using System; 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);             }         }     }