Class C# Tutorial

It is possible to overload the [ ] operator for classes that you create with an indexer.
An indexer allows an object to be indexed like an array.

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("A", 5551212));
        row.Add(new Pair("B", "Fred"));
        row.Add(new Pair("C", 2355.23m));
    }
    
    // the indexer
    public Pair this[int column]
    {
        get
        {
            return((Pair) row[column - 1]);
        }
        set
        {
            row[column - 1] = value;
        }
    }
    ArrayList    row;    
}
class MainClass
{
    public static void Main()
    {
        PairList row = new PairList();
        row.Load();
        Console.WriteLine("Column 0: {0}", row[1].Data);
        row[1].Data = 12;    
    }
}
Column 0: 5551212