一、题目说明:学生类包括成绩、科目和学号,请根据课程成绩grade将学生进行排序。
二、核心代码
int IComparable.CompareTo(object obj)
{
if(obj is Student)
{
Student castobj = (Student)obj;
if (this.mygrade < castobj.mygrade)
return 1;
else
return -1;
}
throw new NotImplementedException();
}
Array.Sort(students);
int i;
for( i = 0; i < 5; i++)
{
Student s = students[i];
Console.WriteLine(s.mygrade+s.mysubject+s.myID);
}
三、结果截图
![](https://i-blog.csdnimg.cn/blog_migrate/d44b62ddc63b272079e7edc21d25c930.png)
四、心得体会
这次是老生常谈的排序问题,本来以为是一次简单的冒泡排序,结果是一个接口问题。当程序报错时我还想把这个接口删除,又用vs自带的辅助编译功能给出可能的解决方案,看了会PPT和网上关于集合对象的相关代码,完成了大概。这里不得不再感慨vs辅助功能的强大,基本知道我需要敲什么样的代码,大大提高了效率。
五、源码地址