A program in C# to find the n-th maximum grade point achieved by the students from the list of students

4 days ago 6
ARTICLE AD BOX

I found this exercise: write a program in C# to find the n-th maximum grade achieved by the students in the list.

These are the solutions I came uü with, but is the second one (maximumGrades2) working by mistake because it doesn't feel right at all?

List<Student> students = [ new Student() {Name = "Lory", Id = 1, Grade = 480}, new Student() {Name = "Bob", Id = 2, Grade = 340}, new Student() {Name = "Mery", Id = 3, Grade = 850}, new Student() {Name = "Vi", Id = 4, Grade = 750}, new Student() {Name = "Caitlyn", Id = 5, Grade = 920}, new Student() {Name = "Amelia", Id = 6, Grade = 750}, new Student() {Name = "Jenny", Id = 7, Grade = 590}, ]; Console.WriteLine("Which maximum grade you want to find: "); int num = Convert.ToInt32(Console.ReadLine()); var maximumGrades = students .OrderByDescending(s => s.Grade) .Skip(num-1) .TakeWhile(s => s.Grade == students[num].Grade); var maximumGrades2 = from student in students orderby student.Grade descending let nth = students[num] where student.Grade == nth.Grade select student; foreach (var item in maximumGrades2) { Console.WriteLine($"Id: {item.Id}, Name: {item.Name}, achieved Grade point: {item.Grade}"); }
Read Entire Article