分组计数和百分比



是否有一种简单的方法来显示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);
}

相关内容

  • 没有找到相关文章

最新更新