/ / Znajdź najwięcej wystąpień w Linq do SQL za pomocą C # - asp.net, c # -4.0, linq-sql

Znajdź najwięcej wystąpień w Linq do SQL za pomocą C # - asp.net, c # -4.0, linq-sql

Mam poniższe zapytanie, które pobiera Name i TotalPoints w następujący sposób:

var gradeData = (from data in oAngieCtxt.prc_ShopInstanceCustomersData(Convert.ToInt32(this.ShopInstanceID), 10000, false)
.Where(row => row.RecievedPoints != "n/a")
.GroupBy(row => new { row.Name })
.Select(g => new
{
TotalPoints = g.Sum(x => Convert.ToDouble(x.RecievedPoints) * (x.Weightage.ToString() == "0.00" ? 1 : Convert.ToDouble(x.Weightage))),
Name = g.Key.Name
})
select data).ToList();

Będę miał dane takie jak poniżej:

TotalPoints        Name
5                  A
10                 B
5                  C
15                 D
5                  E

Jeśli obserwujemy powyższą listę 5 jest najbardziej powszechna. Muszę pobrać tę wartość z "gradeData".

Jak mogę to zdobyć?

Odpowiedzi:

6 dla odpowiedzi № 1
var mostCommon = gradeData.GroupBy(x => x.TotalPoints)
.OrderByDescending(g => g.Count())
.Select(g => g.Key)
.First();

2 dla odpowiedzi nr 2

Poniższe zapytanie daje najbardziej popularny punkt wraz ze wszystkimi powiązanymi nazwami:

var result = gradeData.GroupBy(x => x.TotalPoints)
.OrderByDescending(x => x.Count())
.Select(g => new
{
TotalPoints = g.Key,
Names = g.Select(x => x.Name).ToList()
})
.First();