zoukankan      html  css  js  c++  java
  • Linq 分组(group by)求和(sum)并且按照分隔符(join)分割列数据

    转载:http://www.cnblogs.com/zq281660880/archive/2012/09/26/2704836.html

    今天在使用linq处理一下需求时碰到一点小问题,特此记录。

      需求:

        按照品名相同的进行汇总,数量相加、表号按分号分割显示

    1、组织测试数据表

    复制代码
     DataTable tableA1 = new DataTable();
                tableA1.Columns.AddRange(new DataColumn[] { new DataColumn("品名"), new DataColumn("规格"), new DataColumn("表号"),new DataColumn("数量") });
                tableA1.Rows.Add(new object[] { "螺旋式", "LS-X", "111","2" });
                tableA1.Rows.Add(new object[] { "螺旋式", "LS-X", "222","1" });
                tableA1.Rows.Add(new object[] { "指针式", "LX-3", "523","2" });
                tableA1.Rows.Add(new object[] { "其他式", "L-1", "666", "2" });
                tableA1.Rows.Add(new object[] { "其他式", "L-1", "456", "1" });
                tableA1.Rows.Add(new object[] { "其他式", "L-1", "990", "2" });
    复制代码

    2、使用linq 进行查询处理

    复制代码
     var query = from c  in t.AsEnumerable()
                            group c by new {
                                pingming = c.Field<string>("品名"),
                                guige = c.Field<string>("规格")
                                            }
                                into s
                                select new
                                {
                                    pingming = s.Select(p => p.Field<string>("品名")).First(),
                                    shuliang = s.Sum(p => Convert.ToInt32(p.Field<string>("数量"))),
                                    guige = s.Select(p => p.Field<string>("规格")).First(),
                                    biaohao = string.Join(";",s.Select(p => p.Field<string>("表号")))
                                };
    
                 DataTable tbl = tableA1.Clone();
                 query.ToList().ForEach(p => tbl.Rows.Add(p.pingming, p.guige,p.biaohao,p.shuliang));
    复制代码

    查询结果:

  • 相关阅读:
    XamarinSQLite教程在Xamarin.iOS项目中定位数据库文件
    在Xamarin.iOS项目中使用预设数据库
    函数封装多个不同按钮的点击事件
    ajax请求数据动态渲染表格
    计算历时长度
    layui单文件上传
    滚动到顶部固定
    下载
    第一个项目技术总结
    单选框
  • 原文地址:https://www.cnblogs.com/51net/p/4431272.html
Copyright © 2011-2022 走看看