﻿ C# Sharp Exercises: LINQ : Find the nth Maximum Grade Point achieved by the students from the list of student - w3resource

# C# Sharp Exercises: LINQ : Find the nth Maximum Grade Point achieved by the students from the list of student

## C# Sharp LINQ : Exercise-14 with Solution

Write a program in C# Sharp to find the n-th Maximum grade point achieved by the students from the list of students.

Sample Solution:-

C# Sharp Code:

``````using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

public class Students
{
public string StuName { get; set; }
public int GrPoint { get; set; }
public int StuId { get; set; }

public List<Students> GtStuRec()
{
List<Students> stulist = new List<Students>();
stulist.Add(new Students { StuId = 1, StuName = " Joseph ", GrPoint = 800 });
stulist.Add(new Students { StuId = 2, StuName = "Alex", GrPoint = 458 });
stulist.Add(new Students { StuId = 3, StuName = "Harris", GrPoint = 900 });
stulist.Add(new Students { StuId = 4, StuName = "Taylor", GrPoint = 900 });
stulist.Add(new Students { StuId = 5, StuName = "Smith", GrPoint = 458 });
stulist.Add(new Students { StuId = 6, StuName = "Natasa", GrPoint = 700 });
stulist.Add(new Students { StuId = 7, StuName = "David", GrPoint = 750 });
stulist.Add(new Students { StuId = 8, StuName = "Harry", GrPoint = 700 });
stulist.Add(new Students { StuId = 9, StuName = "Nicolash", GrPoint = 597 });
stulist.Add(new Students { StuId = 10, StuName = "Jenny", GrPoint = 750 });
return stulist;
}
}
class LinqExercise14
{
static void Main(string[] args)
{
Students e= new Students();

Console.Write("\nLINQ : Find the nth Maximum Grade Point achieved by the students from the list of student : ");
Console.Write("\n------------------------------------------------------------------------------------------\n");

Console.Write("Which maximum grade point(1st, 2nd, 3rd, ...) you want to find  : ");
Console.Write("\n");
var stulist = e.GtStuRec();
var students = (from stuMast in stulist
group stuMast by stuMast.GrPoint into g
orderby g.Key descending
select new
{
StuRecord = g.ToList()
}).ToList();

students[grPointRank - 1].StuRecord
.ForEach(i => Console.WriteLine(" Id : {0},  Name : {1},  achieved Grade Point : {2}",i.StuId, i.StuName, i.GrPoint));

}
}
```
```

Sample Output:

```LINQ : Find the nth Maximum Grade Point achieved by the students fro
m the list of student :
--------------------------------------------------------------------
----------------------
Which maximum grade point(1st, 2nd, 3rd, ...) you want to find  : 3

Id : 7,  Name : David,  achieved Grade Point : 750
Id : 10,  Name : Jenny,  achieved Grade Point : 750
```

Flowchart:

C# Sharp Code Editor: