简单示例,直接上代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;//在C#中使用ArrayList必须引用Collections类
namespace Study
{
class IndexedNames
{
static public int size = 10;
private String[] namelist = new String[size];
public IndexedNames()
{
for(int i=0;i<size;i++)
{
namelist[i]="N.A";
}
}
public String this [int index]
{
get
{
string tmp;
if((index>=0)&&(index<size))
{
tmp = namelist[index];
return tmp;
}
else
{
return "";
}
}
set
{
namelist[index] = value;
}
}
}
class program
{
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Green;
IndexedNames T_Names = new IndexedNames();
T_Names[0] = "DaXiang";
T_Names[1] = "ShiZi";
T_Names[2] = "LaoHu";
for (int ix = 0; ix < IndexedNames.size; ix++)
{
Console.WriteLine("T_Names{0}={1}", ix, T_Names[ix]);
}
Console.ReadLine();
}
}
}
运行结果:
其他大侠的,示例代码:
namespace Study
{
class Program
{
static void Main(string[] args)
{
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.DarkYellow;
ScoreIndex s = new ScoreIndex();
s["张三", 1] = 90;
s["张三", 2] = 100;
s["张三", 3] = 80;
s["李四", 1] = 60;
s["李四", 2] = 70;
s["李四", 3] = 50;
Console.WriteLine("张三课程编号为1的成绩为:" + s["张三", 1]);
Console.WriteLine("张三的所有成绩为:");
ArrayList temp;
temp = s["张三"];
foreach (IndexClass b in temp)
{
Console.WriteLine("姓名:" + b.Name + "课程编号:" + b.CourseID + "分数:" + b.Score);
}
Console.ReadLine();
}
}
class IndexClass
{
private string _name;
private int _courseid;
private int _score;
public IndexClass(string _name, int _courseid, int _score)
{
this._name = _name;
this._courseid = _courseid;
this._score = _score;
}
public string Name
{
get { return _name; }
set { this._name = value; }
}
public int CourseID
{
get { return _courseid; }
set { this._courseid = value; }
}
public int Score
{
get { return _score; }
set { this._score = value; }
}
}
class ScoreIndex
{
private ArrayList arr;
public ScoreIndex()
{
arr = new ArrayList();
}
public int this[string _name, int _courseid]
{
get
{
foreach (IndexClass a in arr)
{
if (a.Name == _name && a.CourseID == _courseid)
{
return a.Score;
}
}
return -1;
}
set
{
arr.Add(new IndexClass(_name, _courseid, value)); //arr["张三",1]=90
}
}
//重载索引器
public ArrayList this[string _name]
{
get
{
ArrayList temp = new ArrayList();
foreach (IndexClass b in arr)
{
if (b.Name == _name)
{
temp.Add(b);
}
}
return temp;
}
}
}
}
运行结果: