c# List根据某个属性进行分类,变成以属性名称作为分类的多个List
在平时的开发中,我们从数据库中得到List列表,但是我们希望可以根据属性名称再次进行分类。
其实LINQ中已经内置相应的算法。
长话短说,直接上代码:
var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));
dataList.GroupBy(x => x.KindName).Select(x => new SubGameTaxGrowthTrend { KindName = x.Key,ListData = x.ToList() }).ToList();
其中,BaseSubGameTaxGrowthTrend类如下:
public class BaseSubGameTaxGrowthTrend
{
public string KindName { set; get; }
public double Revenue { set; get; }
public DateTime ConcludeTime { set; get; }
}
SubGameTaxGrowthTrend 类就是我们最后想要得到的效果类。
public class SubGameTaxGrowthTrend
{
public string KindName { set; get; }
public List<BaseSubGameTaxGrowthTrend> ListData { get; set; }
}
补充:有时候我们在得到数据后,只想筛选除不一样的属性字段。例如只想筛选出所有不一样的时间。
var dataList = JsonHelper.DeserializeJsonToList<BaseSubGameTaxGrowthTrend>(JsonHelper.SerializeObject(dataTable));
var timeList = dataList.Where((x, i) => dataList.FindIndex(z => z.ConcludeTime == x.ConcludeTime) == i).ToList();
c# List根据某个属性进行分类,变成以属性名称作为分类的多个List的更多相关文章
- js 对象方法、类方法、原型方法的区别;私有属性、公有属性、公有静态属性的区别
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- CSS3 border-radius 属性和CSS outline 属性
CSS3 border-radius 属性 border-radius 属性是一个简写属性,用于设置四个 border-*-radius 属性. 提示:该属性允许为元素添加圆角边框! 注释:按此顺序设 ...
- CSS属性(常用的属性)
CSS属性(常用的属性)http://www.w3school.com.cn/cssref/index.asp 一:文本与字体属性 1.字体属性 (1):font-size:字体的大小(例如:font ...
- 在C#中使用属性控件添加属性窗口
转自原文 在C#中使用属性控件添加属性窗口 第一步,创建在应用程序中将要展现的字段属性为public公有属性.其中,所有的属性必须有get和set的方法(如果不设置get方法,则要显示的属性不会显示在 ...
- HTML5新增的属性和废除的属性
HTML5中,在新增加和废除很多元素的同时,也增加和废除了很多属性. 新增的属性 1.表单相关的属性 对input(type=text).select.textarea与button指定autofoc ...
- html5中新增的属性和删除的属性
一.表单新增的属性 1.对input(type="text").select.textarea与button元素指定autofocus属性,它以指定属性的方式让元素在画面打开时自动 ...
- Python 属性描述符和属性的查找过程
属性描述符可以用来控制给属性赋值的时候的一些行为 import numbers class IntField: def __get__(self, instance, owner): return s ...
- java中循环遍历实体类的属性和数据类型以及属性值
package com.walkerjava.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTarg ...
- python之属性描述符与属性查找规则
描述符 import numbers class IntgerField: def __get__(self, isinstance, owner): print('获取age') return se ...
- 学习笔记TF023:下载、缓存、属性字典、惰性属性、覆盖数据流图、资源
确保目录结构存在.每次创建文件,确保父目录已经存在.确保指定路径全部或部分目录已经存在.创建沿指定路径上不存在目录. 下载函数,如果文件名未指定,从URL解析.下载文件,返回本地文件系统文件名.如果文 ...
随机推荐
- Hibernate-ORM:05.Hibernate中的list()和iterator()
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Hibernate中查多条(全部)使用list()或iterator() 本篇介绍: 1.如何使用list() ...
- 好几个div(元素)找到最后一个
<div> <div></div> <div></div> <div></div> </div> //找 ...
- java编写词法分析器
词法分析器就是通过扫描一段程序判断是否是关键字.标识符.常数.分界符.运算符.一般分为一符一种和经典五中: 这里我用的是经典五中,此词法分析器是用java编写的: /* 保留字|关键字:1 操作符|运 ...
- Hive 查询元数据库获取某个分区的count数
=========查询分区的大小========= select d.NAME,t.TBL_NAME,p.PART_NAME,prm.PARAM_KEY,prm.PARAM_VALUE from TB ...
- Docker 配置国内镜像加速器,加速下载速度
文章首发自个人微信公众号:小哈学Java 个人网站地址:https://www.exception.site/docker/docker-configuration-of-mirror-acceler ...
- Base64编码转换原理
Base64编码,是我们程序开发中经常使用到的编码方法.它是一种基于用64个可打印字符来表示二进制数据的表示方法.它通常用作存储.传输一些二进制数据编码方法.它其实只是定义用可打印字符传输内容一种方法 ...
- ArcGIS API for JavaScript 入门教程[4] 代码的骨架
[回顾与本篇预览] 上篇简单介绍了JsAPI中的数据与视图,并告诉大家这两部分有什么用.如何有机连接在一起. 这一篇快速介绍一下前端代码的骨架.当然,假定你已经熟悉HTML5.CSS3和JavaScr ...
- Exchange Server 内部版本号和发行日期汇总
本章节对Exchange 各个主要发行版进行简单汇总,分别列出每个服务包 (SP) 的内部版本号.累积更新 (CU) 或特定 Exchange 版本的更新汇总 (RU).汇总内容适用于Exchange ...
- JournalNode failed to restart
Install clusterEnable Namenode HAStart RU"Zookeeper" is completed"Core Masters" ...
- 转://IO的基础概念
磁盘IO.网络IO 对磁盘的每个IO就是在磁盘与一些RAM单元之间相互传送一些相邻的扇区的内容. 磁盘IO延时(IO Latency): 也称为IO响应时间,是指内核对磁盘发出一个 ...