是否有一种简单的方法来显示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
中,我如何得到总数?
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);
}