实现功能:

     

多个字段分组源码样例:

原始数据:

分组后的输出结果:

源代码:

         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 = ; i <= ; i++)
{
drTemp = dt.NewRow();
drTemp["ID"] = i;
drTemp["UserName"] = "姓名" + i.ToString(); if (i < )
{
drTemp["DeptNo"] = "";
drTemp["DeptName"] = "人事部";
}
else
{
drTemp["DeptNo"] = "";
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();
}

Linq DataTable Group By 分组显示人员明细的更多相关文章

  1. sql的 group by 分组;linq的 group by 分组

    先来看看 linq的,下面的一段linq 是 ,在 学生导入数据的时候,我们根据学生的手机号码和学生名称进行分组,如果有重复的,我们就筛选出来,用到了 linq的 group by,注意这里是new出 ...

  2. SqlSever基础 两个条件 group by 分组显示

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  3. LINQ按多列分组(Group By)并计算总和(Sum) (转载)

    来源:https://codedefault.com/2018/group-by-multiple-columns-and-sum-in-csharp .NET[C#]LINQ按多列分组(Group ...

  4. Group GridView:用于.Net的分组显示的GridView

    我的项目需要一个可以分组显示的GridView,我不会写,上网找了一圈,最终在国外的网站上找到的这个,比较符合我的要求,但它的分页得重写,它写了能分页,但我发现它的分页功能事实上并没有实现,也不知道是 ...

  5. 重新想象 Windows 8 Store Apps (12) - 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示

    原文:重新想象 Windows 8 Store Apps (12) - 控件之 GridView 特性: 拖动项, 项尺寸可变, 分组显示 [源码下载] 重新想象 Windows 8 Store Ap ...

  6. DataTable以列分组

    //DataTable以列分组 var result = from r in dt.AsEnumerable() group r by ), b = r.Field<) } into g sel ...

  7. Linq使用Group By经验总结

    1.计数 var q = from p in db.Products group p by p.CategoryID into g select new { g.Key, NumProducts = ...

  8. wpf CollectionViewSource与ListBox的折叠、分组显示,及输入关键字 Filter的筛选

    在wpf中虽然ObservableCollection<T>作为ListBox的Itemsource,很好,很强大!但是CollectionViewSource与ListBox才是天作之合 ...

  9. 在LINQ查询中LINQ之Group By的用法

    LINQ定义了大约40个查询操作符,如select.from.in.where.group 以及order by,借助于LINQ技术,我们可以使用一种类似SQL的语法来查询任何形式的数据.Linq有很 ...

随机推荐

  1. windows主机mysql忘记密码如何重置

    本文主要是针对mysql重置密码过程中出现“mysqld不是内部命令或外部命令”的问题而写的.网上有很多关于mysql忘记密码了如何找回的文章,但是很多说的都不够详细,特别是还要用到DOS命令,可能这 ...

  2. 转载Entity Framework 5.0(EF first)中的添加,删除,修改,查询,状态跟踪操作

    转载原出处:http://www.cnblogs.com/kenshincui/p/3345586.html Entity Framework将概念模型中定义的实体和关系映射到数据源,利用实体框架可以 ...

  3. hdu 2212

    1.简单的思维问题 各个位上阶乘的和 要和这个数相匹配 这样才能得到正确的解.各个位上阶乘的和 是最大是9*9!这样来求解.999999999   9个9 最大的各个位上的阶乘的和为3265920=9 ...

  4. Dom深入浅出

    Dom1级提供了一个Node接口,该接口将由Dom中所有节点类型(包括元素节点.文本节点.属性节点等12种)实现,而js是作为Node类型来实现的,js中的所有节点类型的继承自Node类型, 所以它们 ...

  5. Servlet过滤器理解

    from:http://blog.csdn.net/microtong/article/details/5007170 过滤器(Filter)的概念 过滤器位于客户端和web应用程序之间,用于检查和修 ...

  6. Riesz-Thorin插值不等式

  7. mysql 索引建立

    如何建立mysql索引? 创建索引原则 1.左前缀原则 : mysql索引匹配会从右匹配,到遇到( >  < between like)终止.如 我们建立索引(a,b,c,d), a = ...

  8. 关于expanded一级二级菜单数据的分组排序

    最新再弄关于expandedlistview相关的东西,所以需求是需要对一级菜单根据时间排序,同时二级菜单也需要根据时间排序,距离现在最近的时间显示在最前面. 效果就是如下: --group2  -- ...

  9. EXE文件结构及读取方法

    一.EXE文件概念 EXE File英文全名executable file ,译作可运行文件,可移植可运行 (PE) 文件格式的文件,它能够载入到内存中,并由操作系统载入程序运行.是可在操作系统存储空 ...

  10. 使用 ZooKeeper 同步集群配置

    用 ZooKeeper 同步集群配置,当需要修改所有节点配置时,将配置更新到 ZooKeeper 的一个节点,引起这个节点数据发生变化, 其他所有需要同步配置的节点上的本地 Watcher 会立即发现 ...