LinQ groupby将列相乘并求和c# [英] LinQ groupby multiply columns and sum c#

查看:323
本文介绍了LinQ groupby将列相乘并求和c#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

i have a list of items in c# like this:

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

我想得到一个结果,数量乘以总计,然后将所有不同的"Pdv"和"Rid"的所有总计相乘,即使用GroupBy,但它仅对每个不同的"Rid"求和"和"Pdv"

I want to get a result in wich the Quantity is multiply by the Total and by that sum all totals for all diferent "Pdv" and "Rid", im using a GroupBy but it only sums the Total on each diferent "Rid" and "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" />
}

在总和之前,如何使总计"乘以数量"?

How can i make it "Total" multiply the "Quantity" before Sum's up?

推荐答案

您应该这样做:

@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" />
}

这篇关于LinQ groupby将列相乘并求和c#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆