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.





















Home »
  C# Tutorial »
    LINQ »




Operator
Select
Where
OrderBy
Group
Join
Let
LINQ