LINQ C# Tutorial

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 Order
    {
        public string ID { get; set; }
        public decimal Amount { get; set; }
    }
    class Program
    {
        static void Main(string[] args)
        {
            List orders = new List {
              new Order { ID="X", Amount=900 },
              new Order { ID="Y", Amount=1000 },
              new Order { ID="Z", Amount=1100 }
            };
            List customers = new List {
              new Customer { ID="X", City="Beijing", Country="China", Region="Asia", Sales=9000 },
              new Customer { ID="Y", City="Bogotá", Country="Colombia", Region="South America", Sales=1001 },
              new Customer { ID="Z", City="Lima", Country="Peru", Region="South America", Sales=2002 }
           };
            var queryResults =
               from c in customers
               join o in orders on c.ID equals o.ID
               select new { c.ID, c.City, SalesBefore = c.Sales, NewOrder = o.Amount, SalesAfter = c.Sales+o.Amount };
            foreach (var item in queryResults)
            {
                Console.WriteLine(item);
            }
        }
    }