C#.NET程序设计第6章 集合、索引器实例6-3
设计一个Windows应用程序,定义一个Student类,包含姓名和学号两个字段,并定义一个班级类ClassList,该类包括一个Student集合,使用索引器访问该集合,实现与实例6-3相同的功能
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Test6 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } public class Student { string number; string name; public Student(string number, string name) { this.number = number; this.name = name; } public string Number { get { return number; } } public string Name { get { return name; } } } public class ClassList { private Student[] student; public ClassList(int x) { student = new Student[x]; } public Student this[int index] { get { if (index < 0 || index >= student.Length) { return null; } //copy from iotword.com return student[index]; } set { if (index < 0 || index >= student.Length) { return; } student[index] = value; } } public Student this[string get] { get { foreach (Student s in student) { if (s.Name.IndexOf(get) != -1 || s.Number.IndexOf(get) != -1) return s; } return null; } } } ClassList a = new ClassList(50); private void button1_Click(object sender, EventArgs e) { Student s = a[textBox1.Text]; if (s != null) //copy from iotword.com label4.Text = string.Format("找到学号为:{0}的同学的信息!\n学号:{1}!姓名:{2}", textBox1.Text, s.Number, s.Name); else label4.Text = string.Format("没有找到学号为:{0}的同学的信息", textBox1.Text); } private void button2_Click(object sender, EventArgs e) { Student s = a[textBox2.Text]; if (s != null) label4.Text = string.Format("找到姓名为:{0}的同学的信息!\n学号:{1}!姓名:{2}", textBox2.Text, s.Number, s.Name); else label4.Text = string.Format("没有找到姓名为:{0}的同学的信息", textBox2.Text); } private void button3_Click(object sender, EventArgs e) { int i = Convert.ToInt32(textBox3.Text) - 1; Student s = new Student(textBox1.Text, textBox2.Text); a[i] = s; //copy from iotword.com label4.Text = string.Format("第{0}位同学信息添加成功!\n学号:{1}!姓名:{2}", i + 1, s.Number, s.Name); } private void button4_Click(object sender, EventArgs e) { int i = Convert.ToInt32(textBox3.Text) - 1; Student s = a[i]; if (s != null) label4.Text = string.Format("第{0}位同学的信息为:\n学号:{1}姓名:{2}", i + 1, s.Number, s.Name); else label4.Text = string.Format("没有第{0}位同学的信息!", i + 1); } } }