c#基础知识学习笔记 - 多个参数的索引器

来源:互联网 发布:变化 知乎 编辑:程序博客网 时间:2024/06/08 05:32
using System;using System.Collections;class CourseScore{    private string name;    private int courseID;    private int score;    public CourseScore(string name, int courseID, int score)    {        this.name = name;        this.courseID = courseID;        this.score = score;    }    public string Name    {        get { return name; }        set { name = value; }    }    public int CourseID    {        get { return courseID; }        set { courseID = value; }    }    public int Score    {        get { return score; }        set { score = value; }    }}class CourseScoreIndexer{    private ArrayList arrCourseScore;    public CourseScoreIndexer()    {        arrCourseScore = new ArrayList();    }    public int this[string name, int courseID]    {        get        {            foreach(CourseScore cs in arrCourseScore)            {                if (cs.Name == name && cs.CourseID == courseID)                    return cs.Score;            }            return -1;        }        set        {            arrCourseScore.Add(new CourseScore(name, courseID, value));        }    }    public ArrayList this[string name]    {        get        {            ArrayList tempArray = new ArrayList();            foreach (CourseScore cs in arrCourseScore)            {                if (cs.Name == name)                    tempArray.Add(cs);            }            return tempArray;        }    }}class Test{    static void Main()    {        CourseScoreIndexer csi = new CourseScoreIndexer();        csi["张三", 1] = 90;        csi["张三", 2] = 70;        csi["张三", 3] = 85;        csi["李四", 1] = 80;        Console.WriteLine(csi["张三", 2]);        Console.WriteLine("张三的所有的课程成绩为:");        ArrayList tempArray;        tempArray = csi["张三"];        foreach (CourseScore cs in tempArray)        {            Console.WriteLine("姓名:{0} 课程:{1} 分数:{2}", cs.Name, cs.CourseID, cs.Score);        }        Console.Read();    }}

原创粉丝点击