• datatable 分组


    public static void PrintPersons()
    {
    //准备数据
    DataTable dt = new DataTable();
    dt.Columns.Add(new DataColumn("ID", typeof(int)));
    dt.Columns.Add(new DataColumn("UserName", typeof(string)));
    dt.Columns.Add(new DataColumn("DeptNo", typeof(string)));
    dt.Columns.Add(new DataColumn("DeptName", typeof(string)));
    DataRow drTemp = null;
    for (int i = 10; i <= 18; i++)
    {
    drTemp = dt.NewRow();
    drTemp["ID"] = i;
    drTemp["UserName"] = "姓名" + i.ToString();

    if (i < 15)
    {
    drTemp["DeptNo"] = "0001";
    drTemp["DeptName"] = "人事部";
    }
    else
    {
    drTemp["DeptNo"] = "0002";
    drTemp["DeptName"] = "生产部";
    }
    dt.Rows.Add(drTemp);
    }

    Console.WriteLine("分组前:");
    foreach (DataRow row in dt.Rows)
    {
    Console.WriteLine(string.Format("{0} {1} {2} {3} ", row.ItemArray));
    }
    Console.WriteLine("");

    Console.WriteLine("分组后:");

    //Linq分组查询,并按分组显示人员明细
    var query = from g in dt.AsEnumerable()
    group g by new { t1 = g.Field<string>("DeptNo"), t2 = g.Field<string>("DeptName") } into companys
    select new { DeptNo = companys.Key.t1, DeptName = companys.Key.t2, StallInfo = companys };

    foreach (var userInfo in query)
    {
    System.Collections.Generic.List<DataRow> dataRows = userInfo.StallInfo.ToList();

    Console.WriteLine(string.Format("{0}({1})人员名单: ", userInfo.DeptName, userInfo.DeptNo));
    foreach (System.Data.DataRow dr in dataRows)
    {
    Console.WriteLine(string.Format("{0} {1} ", dr.ItemArray));
    }
    }
    Console.ReadLine();
    }

  • 相关阅读:
    树状数组——求和问题题解
    java 基础01
    java jdk 配置
    一位资深程序员大牛给予Java初学者的学习路线建议
    汇编 OD 标志位 置位相关指令
    汇编 SETG,SETL ,SETGE, SETLE指令
    汇编 指令lodsb,lodsw,lodsd
    汇编 STOSB, STOSW, STOSD指令
    汇编 LOOP,LOOPD指令
    汇编 STD和CLD指令
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/9087671.html
Copyright © 2020-2023  润新知