我上课 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分钟仍然找不到解决方案 .