Xếp hạng AFAIK () không có chức năng nội trang trong LINQ. Câu trả lời này sử dụng cách tiếp cận của bạn, nhưng nó có vẻ hiệu quả với họ. Đây là cách bạn có thể sử dụng nó:
var customersByCountry = db.Customers
.GroupBy(c => c.CountryID);
.Select(g => new { CountryID = g.Key, Count = g.Count() });
var ranks = customersByCountry
.Select(c => new
{
c.CountryID,
c.Count,
Rank = customersByCountry.Count(c2 => c2.Count > c.Count) + 1
});