Format string then compare in CSharp

Description

The following code shows how to format string then compare.

Example


    /*from   ww w.j a va2  s .c om*/


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

    }




















Home »
  C# Tutorial »
    LINQ »




Operator
Select
Where
OrderBy
Group
Join
Let
LINQ