using System.Collections.Generic;
public static void Main()
Console.WriteLine("--------------With Normal Methods ------------");
Customer cust=new Customer();
Address addr=cust.GetAddressByphoneNumber("9538");
Console.WriteLine("Street Name: {0} , Mobile Number :{1} , Pin Code :{2}",addr.streetname,addr.mobileno,addr.pincode);
Address addrbypin=cust.GetAddressByPostalcode(7456);
Console.WriteLine("Street Name: {0} , Mobile Number :{1} , Pin Code :{2}",addrbypin.streetname,addrbypin.mobileno,addrbypin.pincode);
Console.WriteLine("-------------- ------------");
Console.WriteLine("Indexer helps to simplifies the way we access the collection from a class");
Console.WriteLine("--------------With indexer ------------");
Address addrIndex1=cust[7456];
Console.WriteLine("Street Name: {0} , Mobile Number :{1} , Pin Code :{2}",addrIndex1.streetname,addrIndex1.mobileno,addrIndex1.pincode);
Address addrIndex2=cust["9538"];
public string streetname{get;set;}
public string mobileno{get;set;}
public int pincode{get;set;}
private List<Address> Customeraddresses=new List<Address>();
Customeraddresses.Add(new Address{
streetname="123",mobileno="9538",pincode=123
Customeraddresses.Add(new Address{
streetname="4568",mobileno="953878",pincode=254
Customeraddresses.Add(new Address{
streetname="8798",mobileno="312",pincode=7456
public Address GetAddressByPostalcode(int postalcode)
foreach(Address addr in Customeraddresses)
if (addr.pincode == postalcode)
public Address GetAddressByphoneNumber(string phonenumber)
foreach (Address addr in Customeraddresses)
if (addr.mobileno == phonenumber)
public Address this[int pincode]{
foreach(Address addr in Customeraddresses)
if (addr.pincode == pincode)
public Address this[string phonenumber]{
foreach (Address addr in Customeraddresses)
if (addr.mobileno == phonenumber)