汇总列表中的多列

时间:2019-05-31 09:32:43

标签: c# list linq razor

我正在创建一个html表以在列表中显示值<>列表具有三列:指标名称,选择指标的年份和月份以及已过滤次数的计数上。

我正在使用的代码和html如下所示:

<table class="users">
    <tr>
        <th></th>
        @foreach (var monthYear in Model.KeyIndicatorUseCount.Select(m => m.MonthYear).Distinct())
        {
            <th>@monthYear</th>
        }
    </tr>
    @foreach (var keyIndicator in Model.KeyIndicatorUseCount.Select(m => m.Name).Distinct())
    {
        <tr>
            <td>@keyIndicator</td>
            @foreach (var monthYear in Model.KeyIndicatorUseCount.Select(m => m.MonthYear).Distinct())
            {
                <td>@Model.KeyIndicatorUseCount.Sum(m => m.Count)</td>
            }
        </tr>
    }
</table>

当前,该表中填充了第一个月年份列的值之和。

计算必须是每个关键指标在该月年份中的观看次数之和。

作为参考,下面是当前制作的屏幕截图:

Key indicator counts by month

如何进行计算以获得第一列中关键指标名称的每个月-年对应的总和?

1 个答案:

答案 0 :(得分:1)

 @foreach (var keyIndicator in item.OrderBy(f => f.Name).GroupBy(f => f.Name))
 {
     <tr>
         <td>@keyIndicator.Key</td>
         @foreach (var monthYear in keyIndicator.OrderBy(f => f.MonthYear).GroupBy(f => f.MonthYear))
         {
              <td>@(keyIndicator.Sum(f => f.Count))</td>
         }
         <td>
             @(keyIndicator.Sum(f => f.Count)) /* if you want to sum count of every month of year */
         </td>
     </tr>
}