zoukankan      html  css  js  c++  java
  • linq 将datatable分组求和在转datatable

    DataTable dt = new DataTable();
    dt.Columns.Add("CustomerID");
    dt.Columns.Add("aa");
    dt.Columns.Add("vv");
    dt.Columns["CustomerID"].DataType = typeof(string);
    dt.Columns["aa"].DataType = typeof(Int32);
    dt.Columns["vv"].DataType = typeof(Int32);
    DataRow row = dt.NewRow();
    row["CustomerID"] = "222";
    row["aa"] = 1;
    row["vv"] = 2;
    dt.Rows.Add(row);
    DataRow row1 = dt.NewRow();
    row1["CustomerID"] = "222";
    row1["aa"] = 1;
    row1["vv"] = 2;
    dt.Rows.Add(row1);
    DataRow row11 = dt.NewRow();
    row11["CustomerID"] = "3";
    row11["aa"] = 1;
    row11["vv"] = 2;
    dt.Rows.Add(row11);
    DataRow row12 = dt.NewRow();
    row12["CustomerID"] = "3";
    row12["aa"] = 1;
    row12["vv"] = 2;

    dt.Rows.Add(row12);
    var query = from t in dt.AsEnumerable().ToList()
    group t by new { t1 = t.Field<string>("CustomerID") } into m
    select new
    {
    name = m.Key.t1,
    score = m.Sum(n => n.Field<Int32>("aa")),
    ss = m.Sum(n => n.Field<Int32>("vv"))
    };


    DataTable dt22= ToDataTable(query.Where(p=>1==1));

    public static DataTable ToDataTable<T>(IEnumerable<T> collection)
    {
    var props = typeof(T).GetProperties();
    var dt = new DataTable();
    dt.Columns.AddRange(props.Select(p => new DataColumn(p.Name, p.PropertyType)).ToArray());
    if (collection.Count() > 0)
    {
    for (int i = 0; i < collection.Count(); i++)
    {
    ArrayList tempList = new ArrayList();
    foreach (PropertyInfo pi in props)
    {
    object obj = pi.GetValue(collection.ElementAt(i), null);
    tempList.Add(obj);
    }
    object[] array = tempList.ToArray();
    dt.LoadDataRow(array, true);
    }
    }
    return dt;
    }

  • 相关阅读:
    underscore相关记录
    背包问题
    数学图形(2.26) 3D曲线结
    数学图形(1.41)super spiral超级螺线
    数学图形(2.25)三维悬链线与悬链面
    数学图形(2.24) 帖在圆柱面上的曲线
    数学图形(2.23)Cylindric sine wave柱面正弦曲线
    数学图形(2.22) 帖在圆锥面上的曲线
    数学图形(2.21) 帖在抛物面上的曲线
    数学图形(2.20)3D曲线
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/8807258.html
Copyright © 2011-2022 走看看