Sorted join query : OrderBy « LINQ « C# / CSharp Tutorial






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

    }








22.10.OrderBy
22.10.1.OrderBy: prints an alphabetically sorted version of a string array
22.10.2.string array sorted by the length each element
22.10.3.products sorted alphabetically by the product name
22.10.4.OrderBy with customized Comparer
22.10.5.OrderBy with passing a lambda function
22.10.6.OrderBy Descending
22.10.7.products sorted by the number of units of each product that are in stock
22.10.8.sorted alphabetically in descending order, using a case insensitive comparision.
22.10.9.Using a compound orderby to sort a list of digits first by length of their name, and then alphabetically.
22.10.10.An array of string values sorted first by length, then sorted alphabetically, using a case-insentive comparison.
22.10.11.Using a compound orderby to sort a list of products, first by category, and then by unit price, from highest to lowest.
22.10.12.First OrderBy Prototype
22.10.13.Where with OrderBy
22.10.14.Order Method Syntax
22.10.15.Order Query Results
22.10.16.Order by descending
22.10.17.Sort object by its property
22.10.18.Sorted join query
22.10.19.Sorting strings in a file
22.10.20.Top Five Customers by Sales
22.10.21.Ordered by PetName
22.10.22.Multi Level Ordering
22.10.23.Not in Top Five Customers by Sales
22.10.24.Icecreams with Least Price
22.10.25.Using orderby clause to order result