我上课 Pupil
class Pupil : Person
{
public DateTime EntryDate { get; private set; }
public string Class { get; private set; }
public Pupil(string firstname, string surname, DateTime birthday, Gender gender,
string @class, DateTime entrydate)
: base(firstname, surname, birthday, gender)
{
EntryDate = entrydate;
Class = @class;
}
而现在我应该对学生进行排序(比较) .
-
降序(5XHIF - > 4XHIF - > ... - > 1XHIF
-
输入日期升序
所以我创建了一个名为Comparer4的新类
class Comparer4 : IComparer<Pupil>
{
public int Compare(Pupil x, Pupil y)
{
if (x == null)
return y == null ? 0 : 1;
else if (y == null)
return -1;
int result = -x.Class.CompareTo(y.Class);
if (result == 0)
{
result = x.EntryDate.CompareTo(y.EntryDate);
}
return result;
}
}
然后我试着打印学生 .
public void PrintPupils()
{
List<Pupil> pupils = new List<Pupil>();
foreach (Person p in People)
{
if (p is Pupil)
pupils.Add((Pupil)p);
}
pupils.Sort(new Comparer4());
}
我没有得到任何输出 . 我一直试图修复它20分钟仍然找不到解决方案 .