Define both int and string indexer for a class : Indexer « Class « C# / CSharp Tutorial






using System;
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;
  }
}
C








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