是否有一种简单的方法可以在Linq GroupBy
中显示总数的百分比?
我目前有:
private static object GetPageUsers(IEnumerable<Pagehit> getPageLog)
{
return getPageLog
.GroupBy(g => g.UserID)
.Select(x => new { User = GetUserFName(x.Key.ToString()),
NumberOfHits = x.Count(),
percentage = x.Count() / total
})
.OrderByDescending(o => o.NumberOfHits);
}
在这一行percentage = x.Count() / total
中如何获得总数?
答案 0 :(得分:1)
getPageLog是IEnumerable,因此它没有Count属性。但它应该有一个Count()
扩展方法。
你可以使用:
private static object GetPageUsers(IEnumerable<Pagehit> getPageLog)
{
return getPageLog
.GroupBy(g => g.UserID)
.Select(x => new { User = GetUserFName(x.Key.ToString()),
NumberOfHits = x.Count(),
percentage = (100 * x.Count()) / getPageLog.Count() + "%"
})
.OrderByDescending(o => o.NumberOfHits);
}