【Basic Code】List集合合并相关项
来源:互联网 发布:淘宝服装一件代发货源 编辑:程序博客网 时间:2024/06/06 03:18
如下图所示:
这张表是个会员卡事件记录表,每条记录代表1次针对套餐的操作,其中根据Event字段来进行取分,Event为1代表“开卡”,2代表“充值”,3代表“换卡”,4代表“补卡”,5代表“退卡”,可以看到前两条数据分别是开卡和充值,而且LaeguerId相同,代表为同一张会员卡分别进行了开卡和充值操作;看第3、4、条记录,Event指为3,则代表将1、2的对应套餐换到了别的卡上,即客户进行了“换卡”操作,此时第1条数据被复制到第3条,第2条数据被复制到第4条,Event字段被置为3.同理,就像我用线标出的一样,执行换卡和补卡操作后,会复制之前的记录到新的LeaguerId名下。
问题:
界面上要显示的换卡记录得条数是按照套餐数量来输出的,就像1,2,被换到了3,4,虽然LeaguerId为1的会员有两条套餐被换了,其实执行了一次换卡动作,那么界面上就要显示一条记录,而不是两条。
解决方案:
changeCardList是经过筛选后Event为3的,即将显示在界面上的List,对其分组(根据LeaguerId),遍历每一个分组结果,取其第一条记录,这个过程需要再次从IEnumerable转换为List,但是换卡后的游戏点数依旧是取和,foreach外定义list,用于承接新的返回值。
var cclist = changeCardList.GroupBy(a => a.LeaguerId); //用LeaguerId做标识foreach (var c in cclist){ var changelist = c.ToList(); //cclist是IEnumerable类型的数据,需要将其转为List LeKeCardInfo changeCard = new LeKeCardInfo(); changeCard = changelist[0]; //取第一条 foreach (var change in changelist) { changeCard.Point += change.Point; //将其中的Point求和 } list.Add(changeCard);}return list;这段代码,做到了既合并了相关项,同时进行了Point值得求和运算,集成到一个方法中,简单,直观。
0 0
- 【Basic Code】List集合合并相关项
- 合并两个list数据集合
- List集合合并指定数据
- 集合框架--List相关
- 合并两个list集合并且排序
- 合并两个list集合并且排序
- 【Basic Code】对List进行筛选的几种方法
- java 中的集合(二) List相关
- 两个List<Model>集合合并 并且去重方式
- ASP.Net 后台执行导出Excel list集合 有跨行合并
- SAP Basic T-Code
- SAP Basic t-code
- 【Basic Code】简介
- 集合合并
- 集合合并
- 集合合并
- list合并
- list合并
- 更新博客系列
- Tomcat源码分析
- linux命令小结-1
- java learn
- 关于mysql时间类型datetime与timestamp范围
- 【Basic Code】List集合合并相关项
- Android生命周期分析
- Android 通知栏Notification的整合全面学习
- SDL基础-4、渲染与文理(CB)
- CentOs7中 nginx 与 memcache的安装
- linux 让你的进程后台运行
- 【poj 2456】 Aggressive cows
- html标签的嵌套规则
- 第七周 OJ总结<3>-百位数分解