有时候我们需要数据根据一些字段进行分组,这时候用orderBy很方便。不多说了。直接上代码:

 class Ma
{
public int number { get; set; }
public string name { get; set; } public static List<Ma> ToThis()
{
List<Ma> ls = new List<Ma>()
{
new Ma() { number = , name = "第一组1" },
new Ma() { number = , name = "第一组ss" },
new Ma() { number = , name = "第一组rr" },
new Ma() { number = , name = "第三组ss" },
new Ma() { number = , name = "第三组option" },
new Ma() { number = , name = "第二组cake" },
};
return ls;
}
} //需要分组成的对象,按照number进行分组
public class GroupMa
{
public int number { get; set; }
public List<string> names { get; set; }
} [TestMethod]
public void TestGroup()
{
List<Ma> ls = Ma.ToThis();
//List<GroupMa> groupDAta =
// (from Ma maObj in ls
// group maObj by maObj.number into gData
// select new GroupMa
// {
// number = gData.FirstOrDefault().number,
// names = gData.Select(c => c.name).ToList()
// }).ToList();
var data = ls.GroupBy(f => f.number)
.Select(g => new GroupMa
{
number = g.FirstOrDefault().number,
names = g.Select(o => o.name).ToList()
}); Console.Write("");
}

分组后形成的新的数据结构:

当然,对象中嵌套多层对象,分组也是可以的。

 orderDTO.sampleGroup = orderDTO.sampleInfo.GroupBy(g => g.sampleCode).Select(o => new SampleInfoGroup
{
SampleId = o.FirstOrDefault().sampleId,
SampleCode = o.Key,
sampleStatus = o.FirstOrDefault().sampleStatus, //通过GroupBy进行分组,分组后必须用对象来装
CExpressCompany = o.FirstOrDefault().CExpressCompany,
CExpressNumber = o.FirstOrDefault().CExpressNumber,
Consignor = o.FirstOrDefault().Consignor,
outSampleStatus = o.FirstOrDefault().sampleStatus.ToString(),
GroupInfo = o.Select(s => new InfoGroup
{
mark = s.mark,
productName = s.productName, }).ToList()
}).ToList();

还是很实用的一个东西!

c# 通过GroupBy 进行分组的更多相关文章

  1. DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法

    DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...

  2. LINQ技巧:如何通过多次调用GroupBy实现分组嵌套

    问题如上,解决如下,目标在最下面:结果: using System; using System.Linq; using System.Collections.Generic; namespace Co ...

  3. js实现工具函数中groupBy数据分组

    数据 this.tableData = [ {id: 1, name: '测试', number: 1, price: 0}, {id: 2, name: '测试', number: 1, price ...

  4. C# GroupBy分组的问题和解决

    起因 今天在公司做一个需求的时候,写的是面条代码,一个方法直接从头写到尾,其中用到了GroupBy,且GroupBy的KeySelector是多个属性而不是单个属性. 但是公司最近推行Clean Co ...

  5. Python数据聚合和分组运算(1)-GroupBy Mechanics

    前言 Python的pandas包提供的数据聚合与分组运算功能很强大,也很灵活.<Python for Data Analysis>这本书第9章详细的介绍了这方面的用法,但是有些细节不常用 ...

  6. pandas 取 groupby 后每个分组的前 N 行

    原始数据如下: (图是从 excel 截的,最左1行不是数据,是 excel 自带的行号,为了方便说明截进来的) 除去首行是标题外,有效数据为 28行 x 4列 目前的需求是根据 partition ...

  7. 利用python进行数据分析之数据聚合和分组运算

    对数据集进行分组并对各分组应用函数是数据分析中的重要环节. group by技术 pandas对象中的数据会根据你所提供的一个或多个键被拆分为多组,拆分操作是在对象的特定轴上执行的,然后将一个函数应用 ...

  8. Pandas系列(九)-分组聚合详解

    目录 1. 将对象分割成组 1.1 关闭排序 1.2 选择列 1.3 遍历分组 1.4 选择一个组 2. 聚合 2.1 一次应用多个聚合操作 2.2 对DataFrame列应用不同的聚合操作 3. t ...

  9. 《python for data analysis》第九章,数据聚合与分组运算

    # -*- coding:utf-8 -*-# <python for data analysis>第九章# 数据聚合与分组运算import pandas as pdimport nump ...

随机推荐

  1. js截取字符串的后几位数

    代码如下: var str="abcdefghhhh";//截取后4位 str.substring(str.length-4):

  2. lucene 初探

    前言: window文件管理右上角, 有个搜索功能, 可以根据文件名进行搜索. 那如果从文件名上判断不出内容, 我岂不是要一个一个的打开文件, 查看文件的内容, 去判断是否是我要的文件? 几个, 十几 ...

  3. mysql命令行查看建表语句

    命令如下: SHOW CREATE TABLE tbl_name 例子: mysql> SHOW CREATE TABLE t\G . row ************************* ...

  4. (转)Spring常用注解

    使用注解来构造IOC容器 用注解来向Spring容器注册Bean.需要在applicationContext.xml中注册<context:component-scan base-package ...

  5. angular ng-repeat元素swiper无法滑动问题解决

    前言 angular中ng-repeat元素swiper无法滑动,angular与swiper冲突. 1.问题 在项目中,我需要利用ng-repeat循环li,比如一个nav导航条,在加入swiper ...

  6. 搜索过滤Tip : title,site(搜标题和搜网站)

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~拿老东家作例子了.........

  7. C# int? 关键字

    1.int?  关键字说明 (1).int? 表示一个int类型,且该int类型可空,如果不加?的话,那么int类型的默认值为0,不能赋null值,代码如下: int aa = null; (2).当 ...

  8. 关于ASPxComboBox通过ClientInstanceName,js获取不到控件的问题

    今天突然遇到一个很奇葩的问题 ASPxComboBox中设置了ClientInstanceName.但是通过cmbOrganization.GetValue()获取不到值. 报错cmbOrganiza ...

  9. C++切割文件

    void CFileCutter::DoSplit() { ; //计数 CString strSourceFile = m_strSource; //取得全局变量赋值给局部变量,方便操作 CStri ...

  10. Java集合类源码解析:HashMap (基于JDK1.8)

    目录 前言 HashMap的数据结构 深入源码 两个参数 成员变量 四个构造方法 插入数据的方法:put() 哈希函数:hash() 动态扩容:resize() 节点树化.红黑树的拆分 节点树化 红黑 ...