Using a string as an indexer value : Indexer « Class « C# / CSharp Tutorial






class DayCollection
{
    string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };

    private int GetDay(string testDay)
    {
        for(int j = 0; j < days.Length; j++)
        {       
            if (days[j] == testDay)
            {
                return j;
            }
        }

        throw new System.ArgumentOutOfRangeException(testDay, "testDay must be in the form \"Sun\", \"Mon\", etc");
    }
    public int this[string day]
    {
        get
        {
            return (GetDay(day));
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        DayCollection week = new DayCollection();
        System.Console.WriteLine(week["Fri"]);

        System.Console.WriteLine(week["AAA"]);
    }
}








7.40.Indexer
7.40.1.Creating One-Dimensional Indexers
7.40.2.Indexing with an Integer Indexer
7.40.3.Indexing with an String Indexer
7.40.4.Indexing with Multiple Parameters
7.40.5.Define both int and string indexer for a class
7.40.6.Use indexer to add element
7.40.7.Define getter only indexer
7.40.8.Use an indexer to create a fail-soft array.
7.40.9.Overload the MyArray indexer
7.40.10.Indexers don't have to operate on actual arrays
7.40.11.Indexer based on 0 or non-zero
7.40.12.Indexer based on switch statement
7.40.13.Indexer for generic type
7.40.14.Using a string as an indexer value