C# String type indexer

In this chapter you will learn:

  1. Indexing with an String Indexer
  2. Define both int and string indexer for a class

String value indexer

We can index value in a class by using string value indexer.


class DayCollection
{/*w  w w . j a  v  a  2 s  . com*/
    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"]);
    }
}

The code above generates the following result.

int and string indexer


using System;/*from   w  w  w.  j av  a  2 s. com*/
using System.Collections;
using System.Collections.Specialized;

public class MainClass
{
  public static void Main()
  {
    EmployeeList carLot = new EmployeeList();
    
    carLot["A"] = new Employee("A");
    carLot["B"] = new Employee("B");
    carLot["C"] = new Employee("C");

    Employee zippy = carLot["C"];
    Console.WriteLine(zippy.Name);
  }
}

public class EmployeeList
{
  private ListDictionary carDictionary;
  
  public EmployeeList()
  {
    carDictionary = new ListDictionary();
  }

  // The string indexer.
  public Employee this[string name]
  {
    get { return (Employee)carDictionary[name];}
    set { carDictionary.Add(name, value);}
  }
  
  // The int indexer.
  public Employee this[int item]
  {
    get { return (Employee)carDictionary[item];}
    set { carDictionary.Add(item, value);}
  }
}
public class Employee
{
    public string Name = "";
    
  public Employee(string n)
  {
      Name = n;
  }
}

The code above generates the following result.

Next chapter...

What you will learn in the next chapter:

  1. How to create C# multidimensional indexer
  2. How to create read only multidimensional indexer
Home »
  C# Tutorial »
    C# Types »
      C# Indexer
C# Indexer
C# String type indexer
C# Multidimensional indexer
C# Indexer overloading
C# Appendable Indexer
C# Indexer logic