Indexing with an String Indexer : Indexer : Class C# Examples


C# Examples » Class » Indexer »

 

Indexing with an String Indexer









    
using  System;
using  System.Collections;
class  Pair
{
        public  Pair(string  name,  object  data)
        {
                this.name  =  name;
                this.data  =  data;
        }
        public  string  Name
        {
                get
                {
                        return(name);
                }
                set
                {
                        name  =  value;
                }
        }
        public  object  Data
        {
                get
                {
                        return(data);
                }
                set
                {
                        data  =  value;
                }
        }
        string        name;
        object  data;
}
class  PairList
{
        public  PairList()
        {
                row  =  new  ArrayList();
        }
        
        public  void  Load()  
        {
                /*  load  code  here  */  
                row.Add(new  Pair("Q",  5551212));
                row.Add(new  Pair("A",  "text"));
                row.Add(new  Pair("B",  2355.23m));
        }
        
        public  Pair  this[int  column]
        {
                get
                {
                        return(  (Pair)  row[column  -  1]);
                }
                set
                {
                        row[column  -  1]  =  value;
                }
        }
        int  FindPair(string  name)
        {
                for  (int  index  =  0;  index  <  row.Count;  index++)
                {
                        Pair  Pair  =  (Pair)  row[index];
                        if  (Pair.Name  ==  name)
                        return(index);
                }
                return(-1);
        }
        public  Pair  this[string  name]
        {
                get
                {
                        return(  (Pair)  this[FindPair(name)]);
                }
                set
                {
                        this[FindPair(name)]  =  value;
                }
        }
        ArrayList        row;        
}
class  Test
{
        public  static  void  Main()
        {
                PairList  row  =  new  PairList();
                row.Load();
                Pair  val  =  row["A"];
                Console.WriteLine("A:  {0}",  val.Data);
                Console.WriteLine("B:  {0}",  row["B"].Data);
                row["Q"].Data  =  "new  value";        //  set  the  name
                Console.WriteLine("Q:  {0}",  row["Q"].Data);
        }
}
    
   
  
   



Output

A: 5551212
B: text

Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negativ
e and less than the size of the collection.
Parameter name: index
   at System.Collections.ArrayList.get_Item(Int32 index)
   at PairList.get_Item(Int32 column)
   at Test.Main()


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Class
» Indexer