zoukankan      html  css  js  c++  java
  • Linq对DataTable中的列的分类统计

    Linq 对DataTable中的列进行分类统计

    一、构造数据源

            DataTable dt = new DataTable();

                 DataColumn dc = new DataColumn();

                dc.ColumnName = "Id";
                dc.DataType = typeof(System.String);
                dc.DefaultValue = "";
                dt.Columns.Add(dc);
                dc = new DataColumn();
                dc.ColumnName = "CountIn";
                dc.DataType = typeof(System.Decimal);
                dc.DefaultValue = 0;
                dt.Columns.Add(dc);
                this.dataGridView1.DataSource = dt;

    ===============

    二、添加数据

                DataRow dr = dt.NewRow();
                dr["Id"] = "a1";
                dr["CountIn"] = 12;
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["Id"] = "B1";
                dr["CountIn"] = 24;
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["Id"] = "a1";
                dr["CountIn"] = 34;
                dt.Rows.Add(dr);
                dr = dt.NewRow();
                dr["Id"] = "B1";
                dr["CountIn"] = 24;
                dt.Rows.Add(dr);

    ========================

    数据值:

     

     =======================

     三、分类汇总

                var result = from r in dt.AsEnumerable()
                             group r by r.Field<string>("Id") into g
                             select new
                             {
                                 g_id = g.Key,
                                 g_countIn = g.Sum(r => r.Field<decimal>("CountIn"))
                             };
                DataTable dt1 = dt.Clone();
                DataRow dr;
                foreach (var re in result)
                {
                    dr = dt1.NewRow();
                    dr["Id"] = re.g_id;
                    dr["CountIn"] = re.g_countIn;
                    dt1.Rows.Add(dr);
                }
                this.dataGridView2.DataSource = dt1;
    ============================================

    得到如下数据:

     

  • 相关阅读:
    NOIP2016 愤怒的小鸟
    LCIS code force 10D
    UVA 1398
    uva1382 Distant Galaxy
    洛谷-3930(我在洛谷上也写了题解)
    HDU-1505 City Game
    导弹拦截n logn的算法(单调性)洛谷1020
    POJ 1182 食物链
    POJ
    1202. 交换字符串中的元素
  • 原文地址:https://www.cnblogs.com/y740504/p/2348593.html
Copyright © 2011-2022 走看看