有时候我们需要数据根据一些字段进行分组,这时候用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. JavaScript -- URL编码

    ----- 010-escape.html ----- <!DOCTYPE html> <html> <head> <meta http-equiv=&quo ...

  2. 《Netty权威指南》(一)走进 Java NIO

    目录 1.1 I/O 基础入门 1.1.1 Linux 网络 I/O 模型 1.1.2 I/O 多路复用技术 2. Java 的 I/O 演进   1.1 I/O 基础入门 Java1.4 之前的早期 ...

  3. mysql索引总结(2)-MySQL聚簇索引和非聚簇索引

    mysql索引总结(1)-mysql 索引类型以及创建 mysql索引总结(2)-MySQL聚簇索引和非聚簇索引 mysql索引总结(3)-MySQL聚簇索引和非聚簇索引 mysql索引总结(4)-M ...

  4. (转)mybatis数据库物理分页插件PageHelper

    以前使用ibatis/mybatis,都是自己手写sql语句进行物理分页,虽然稍微有点麻烦,但是都习惯了.最近试用了下mybatis的分页插件 PageHelper,感觉还不错吧.记录下其使用方法. ...

  5. ZOJ 3960 What Kind of Friends Are You?(读题+思维)

    题目链接 :http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5592 Japari Park is a large zoo hom ...

  6. MyBatis原理第四篇——statementHandler对象(sqlSession内部核心实现,插件的基础)

    首先约定文中将的四大对象是指:executor, statementHandler,parameterHandler,resultHandler对象.(为了方便下面的文章说道四大对象就专指它们) 讲到 ...

  7. Table转换成实体、Table转换成实体集合(可转换成对象和值类型)

    /// <summary> /// Table转换成实体 /// </summary> /// <typeparam name="T">< ...

  8. 安卓开发笔记①:利用高德地图API进行定位、开发电子围栏、天气预报、轨迹记录、搜索周边(位置)

    高德地图开发时需要导入的包在下面的网盘链接中:(由于高德地图api更新得太快,官网上最新的包使用起来没有之前的方便,所以以下提供最全面的原始包) 链接:http://pan.baidu.com/s/1 ...

  9. C# Thread.Abort方法真的让线程停止了吗?

    大家都知道在C#里面,我们可以使用 Thread.Start方法来启动一个线程,当我们想停止执行的线程时可以使用Thread.Abort方法来强制停止正在执行的线程,但是请注意,你确定调用了Threa ...

  10. [转载]常用 SQL Server 规范集锦

    转载者注:据说是某公司(携程)内部规范. 常见的字段类型选择 1.字符类型建议采用varchar/nvarchar数据类型 2.金额货币建议采用money数据类型 3.科学计数建议采用numeric数 ...