加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – Sum和group linq

发布时间:2020-12-17 00:08:06 所属栏目:大数据 来源:网络整理
导读:我试图自己解决这个问题,但我不得不在VB中做到这一点,这让我更加困惑. 基本上我有一些物体 ListPax paxes; 其中一个Pax属性是Voucher,而Voucher又有一些属性,如ID和Price 我想要做的是从Pax列表中选择一个凭证列表及其累积价格 so from Pax1 - Voucher{ Vouc
我试图自己解决这个问题,但我不得不在VB中做到这一点,这让我更加困惑.
基本上我有一些物体
List<Pax> paxes;

其中一个Pax属性是Voucher,而Voucher又有一些属性,如ID和Price

我想要做的是从Pax列表中选择一个凭证列表及其累积价格

so from 
Pax1 - Voucher{ VoucherDesc = 10 percent off,VoucherCode = 10-OFF,Price = £150}
Pax2 - Voucher{ VoucherDesc = 10 percent off,Price = £120}
Pax3 - Voucher{ VoucherDesc = Buy one get one free,VoucherCode = BOGOF,Price = £300}

to 
{10 percent off,10-OFF,£270 }
{Buy one get one free,BOGO,£300 }

我确信这可以通过一些linq和分组来实现,但我完全被难倒了

假设它是沿着的

dim newlist = from p in paxes group p by p.VoucherCode into g _ 
                select new With {g. ..}

是的,这必须以VB结束,但是当我发现相当痛苦时,我想在C#中会更加理解它
然而,由于VB语法是纯粹的邪恶,如果有人可以发布两者,我可能最终能够理解它的作用.因为代码转换器似乎不能很好地使用扩展的linq查询.

任何帮助非常感谢

假设价格是十进制或双精度(不是字符串):
var query = from v in paxes.Select(p => p.Voucher)
            group v by new {v.VoucherDesc,v.VoucherCode } into g
            select new { 
                Desc = g.Key.VoucherDesc,Code = g.Key.VoucherCode,Total = g.Sum(x => x.Price)
            };

更新:您的问题最初是用C#标记的,因此这是一个C#解决方案.希望你能把它翻译成VB.如果price是字符串,那么只需添加值的解析.例如.

Total = g.Sum(x => Double.Parse(x.Price.Replace("£",""))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读