using System;
using System.Collections;
public class MainClass
{
public static void Main()
{
EmployeeList empList = new EmployeeList();
empList[0] = new Employee("F");
empList[1] = new Employee("C");
empList[2] = new Employee("Z");
for(int i = 0; i < empList.GetNumberOfEmployeeList(); i++)
{
Console.WriteLine("Employee number {0}:", i);
Console.WriteLine("Name: {0}", empList[i].Name);
}
try
{
Console.WriteLine("Using IEnumerable");
foreach (Employee c in empList)
{
Console.WriteLine("Name: {0}", c.Name);
}
}
catch{}
}
}
public class EmployeeList : IEnumerable
{
private ArrayList carArray;
public EmployeeList()
{
carArray = new ArrayList();
}
// The indexer.
public Employee this[int pos]
{
get
{
if(pos < 0)
throw new IndexOutOfRangeException("Hey! Index out of range");
else
return (Employee)carArray[pos];
}
set
{
carArray.Insert(pos, value);
}
}
public int GetNumberOfEmployeeList()
{
return carArray.Count;
}
public IEnumerator GetEnumerator()
{
return carArray.GetEnumerator();
}
}
public class Employee
{
public Employee(string name)
{
this.Name = name;
}
public string Name;
}
Output
Employee number 0:
Name: F
Employee number 1:
Name: C
Employee number 2:
Name: Z
Using IEnumerable
Name: F
Name: C
Name: Z