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

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();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值