Mega Code Archive

 
Categories / C# Tutorial / LINQ
 

Sorted join query

using System; using System.Collections.Generic; using System.Linq; using System.Text;     public class Customer     {         public string FirstName    { get; set; }         public string LastName     { get; set; }         public string EmailAddress { get; set; }         public override string ToString(){             return string.Format("{0} {1}\nEmail:   {2}",FirstName, LastName, EmailAddress);         }     }     public class Address     {         public string Name   { get; set; }         public string Street { get; set; }         public string City   { get; set; }         public override string ToString()         {             return string.Format("{0}, {1}", Street, City);         }     }     public class CustomerAddress     {         public Customer Customer { get; set; }         public Address Address { get; set; }     }     public class Tester     {         static void Main()         {             List<Customer> customers = new List<Customer>                 {                     new Customer { FirstName = "A",                                      LastName = "B",                                     EmailAddress = "o@a.com"},                     new Customer { FirstName = "B",                                      LastName = "C",                                     EmailAddress = "k@a.com" },                     new Customer { FirstName = "D",                                      LastName = "C",                                     EmailAddress = "d@a.com" },                     new Customer { FirstName = "F",                                      LastName = "G",                                     EmailAddress = "j@a.com" },                     new Customer { FirstName = "L",                                      LastName = "H",                                     EmailAddress = "l@a.com" }                 };             List<Address> addresses = new List<Address>                 {                     new Address { Name   = "J",                                   Street = "165 Main",                                      City = "City 1" },                     new Address { Name   = "K H",                                   Street = "3207 Way",                                      City = "Cith 2" },                     new Address { Name   = "J G",                                   Street = "800 Blvd.",                                      City = "City 3" },                     new Address { Name   = "Mary",                                   Street = "7 Ave",                                      City = "City 4" },                     new Address { Name   = "Kate",                                   Street = "2251 Avenue",                                      City = "City 5" }                 };             var result = from customer in customers                 join address in addresses on                      string.Format("{0} {1}", customer.FirstName, customer.LastName)                       equals address.Name                 orderby customer.LastName, address.Street descending                   select new { Customer = customer, Address = address };             foreach (var ca in result)             {                 Console.WriteLine(string.Format("{0}\nAddress: {1}",                     ca.Customer, ca.Address));             }         }     }