Класс "Студент": Создать метод сортировки по различным критериям (по фамилии, по среднему баллу, успеваемости) - 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)); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д