【问题标题】:LinQ groupby multiply columns and sum c#LinQ groupby乘以列并求和c#
【发布时间】:2016-05-23 04:29:44
【问题描述】:

我在 c# 中有一个这样的项目列表:

Rid         Pdv     Total  Quantity
DESAYUNOS   VITP    55        1
CENAS       REST    38        2
COMIDAS     VITP    23        3
DESAYUNOS   REST    116       7
CENAS       VITP    112       1
COMIDAS     REST    11        4
DESAYUNOS   VITP    67        9
CENAS       REST    20        2
COMIDAS     VITP    47        5
DESAYUNOS   REST    5         2
CENAS       VITP    10        1

我想得到一个结果,其中 Quantity 乘以 Total 并乘以所有不同“Pdv”和“Rid”的所有总数,我使用 GroupBy 但它只对每个不同“Rid”的总数求和" 和 "Pdv"

@foreach (var item in Model.GroupBy(l => l.Rid)
    .Select(z => new 
                    { 
                        Turno = z.Key, 
                        Total = z.Sum(l => l.Total) 
                    }))
{
   <input value="@item" />
}

如何在总和之前使其“总计”乘以“数量”?

【问题讨论】:

    标签: c# html linq list foreach


    【解决方案1】:

    你应该这样做:

    @foreach (var item in Model
                         .Select(x => new //here you count your total
                         { 
                             Rid = x.Rid, 
                             Total = x.Total * x.Quantity
                         })
                         .GroupBy(l => l.Rid) //and then grouping
                         .Select(z => new 
                         { 
                             Turno = z.Key, 
                             Total = z.Sum(l => l.Total) 
                         }))
    {
       <input value="@item" />
    }
    

    【讨论】:

      【解决方案2】:

      我想得到一个结果,其中 Quantity 乘以 Total,然后乘以所有不同“Pdv”和“Rid”的所有总数"

      @foreach (var item in Model
                           .Select(m => new { Rid = m.Rid, m.Pdv, Total =m.Total * m.Quantity})
                           .GroupBy(g => new { g.Rid, g.Pdv} )
                           .Select(s => new 
                           { 
                               Rid = s.Key.Rid, 
                               Pdv = s.Key.Pdv, 
                               Total = s.Sum(t => t.Total) 
                           }))
      {
         <input value="@item" />
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 1970-01-01
        • 2017-02-08
        • 2017-11-18
        • 1970-01-01
        • 2012-06-24
        相关资源
        最近更新 更多