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