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