Класс "Студент": Создать метод сортировки по различным критериям (по фамилии, по среднему баллу, успеваемости) - C#

Узнай цену своей работы

Формулировка задачи:

Создать класс "Студент", который определяется полями: ФИО, номер группы, название факультета, название специальности, средний балл успеваемости. Пусть имеется массив объектов этого класса. Создать метод сортировки по различным критериям (по фамилии, по среднему баллу, успеваемости). Метод сравнения двух объектов передать в метод сортировки как параметр-делегат.

Решение задачи: «Класс "Студент": Создать метод сортировки по различным критериям (по фамилии, по среднему баллу, успеваемости)»

textual
Листинг программы
       private class Test
        {
            public int A;
            public double B;
            public string C;
            public byte D;
        }
 
        // For objects A, B and C, the following must be true:
        // A.CompareTo(A) must return zero.
        // If A.CompareTo(B) returns zero, then B.CompareTo(A) must return zero.
        // If A.CompareTo(B) returns zero and B.CompareTo(C) returns zero, then A.CompareTo(C) must return zero.
        // If A.CompareTo(B) returns a value other than zero, then B.CompareTo(A) must return a value of the opposite sign.
        // If A.CompareTo(B) returns a value x not equal to zero, and B.CompareTo(C) returns a value y of the same sign as x, then A.CompareTo(C) must return a value of the same sign as x and y.
        // [url]https://msdn.microsoft.com/en-us/library/system.icomparable.compareto%28v=vs.110%29.aspx[/url]
 
        [TestMethod]
        public void TestComparerFull1()
        {
            var objA = new Test { A = 1, B = 19, C = "H", D = 10 };
            var objB = new Test { A = 1, B = 19, C = "H", D = 10 };
            var objC = new Test { A = 1, B = 19, C = "H", D = 10 };
 
            var comparer = CustomComparer<Test>.New(t => t.A).Add(t => t.B).Add(t => t.C).Add(t => t.D).CreateDelegate();
 
            Assert.AreEqual(0, comparer(objA, objB));
            Assert.AreEqual(0, comparer(objB, objA));
 
            Assert.AreEqual(0, comparer(objB, objC));
            Assert.AreEqual(0, comparer(objA, objC));
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы