C#创建一个学生类Student,具有姓名、学号、年龄、班级属性。使用Hashtable存储几个学生对象,分别按照学号和年龄对集合中的学生对象进行排序,实现对学生对象信息的增删改查。各项功能要有必要的
时间: 2024-11-09 07:17:19 浏览: 14
在C#中,我们可以首先定义一个`Student`类来表示学生的基本信息:
```csharp
public class Student
{
public string Name { get; set; }
public int StudentID { get; set; }
public int Age { get; set; }
public string Class { get; set; }
// 构造函数
public Student(string name, int studentID, int age, string className)
{
Name = name;
StudentID = studentID;
Age = age;
Class = className;
}
}
```
接下来,我们使用`Dictionary`(类似Hashtable)来存储学生对象,并利用`List`来实现动态添加、删除和查询操作,同时使用`SortedList`来按学号和年龄排序:
```csharp
using System.Collections.Generic;
// 存储并排序学生的字典
public Dictionary<int, SortedList<int, Student>> StudentDatabase = new Dictionary<int, SortedList<int, Student>>();
// 添加学生
public void AddStudent(Student student)
{
if (!StudentDatabase.ContainsKey(student.StudentID))
{
StudentDatabase.Add(student.StudentID, new SortedList<int, Student>());
}
StudentDatabase[student.StudentID].Add(student.Age, student);
// 按照年龄排序
StudentDatabase[student.StudentID].Sort();
}
// 删除学生
public bool RemoveStudent(int studentID, int age)
{
if (StudentDatabase.ContainsKey(studentID) && StudentDatabase[studentID].ContainsKey(age))
{
StudentDatabase[studentID].Remove(age);
return true;
}
else
{
return false;
}
}
// 修改学生信息
public void UpdateStudent(int studentID, int oldAge, Student updatedStudent)
{
if (RemoveStudent(studentID, oldAge))
{
StudentDatabase[studentID].Add(updatedStudent.Age, updatedStudent);
StudentDatabase[studentID].Sort();
}
}
// 查询学生
public Student FindStudentByStudentID(int studentID) => StudentDatabase.ContainsKey(studentID) ? StudentDatabase[studentID][0] : null;
public Student FindStudentByAge(int age) => StudentDatabase.Values.FirstOrDefault(value => value.ContainsKey(age))?.First();
阅读全文