[工具类]泛型集合转换为DataTable
写在前面
在实际项目中,用到了将集合转换为DataTable,就试着封装了一个方法,记录一下。
代码
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks;namespace Wolfy.List2DataTable {class Program{static void Main(string[] args){List<Person> lst = new List<Person>() { new Person(){ ID=1, Gender=false, Name="wolfy1"},new Person(){ ID=2, Gender=false, Name="wolfy2"},new Person(){ ID=3, Gender=false, Name="wolfy3"},new Person(){ ID=4, Gender=false, Name="wolfy4"},new Person(){ ID=5, Gender=false, Name="wolfy5"},};DataTable dt = List2DataTable<Person>(lst);Console.WriteLine("转换结束");Console.Read();}/// <summary>/// 将泛型集合转换为datatable/// </summary>/// <typeparam name="TEntity"></typeparam>/// <param name="entities"></param>/// <returns></returns>static DataTable List2DataTable<TEntity>(List<TEntity> entities){if (entities == null){throw new ArgumentNullException("转换的集合为空");}Type type = typeof(TEntity);PropertyInfo[] properties = type.GetProperties();DataTable dt = new DataTable(type.Name);foreach (var item in properties){dt.Columns.Add(new DataColumn(item.Name) { DataType = item.PropertyType });}foreach (var item in entities){DataRow row = dt.NewRow();foreach (var property in properties){row[property.Name] = property.GetValue(item);}dt.Rows.Add(row);}return dt;}}public class Person{public int ID { set; get; }public string Name { set; get; }public bool Gender { set; get; }} }
测试结果:
[工具类]泛型集合转换为DataTable相关推荐
- Unity 工具类 之 Excel 转换为 json、csv、xml、lua格式
Unity 工具类 之 Excel 转换为 json.csv.xml.csv 格式 目录 Unity 工具类 之 Excel 转换为 json.csv.xml.csv 格式 一.介绍 二.操作原理 三 ...
- 好用的对象转xml、xml转对象工具类-支持集合嵌套转换(Java实现)
好用的对象转xml.xml转对象工具类-支持集合嵌套转换(Java实现) 网上找了很多转换工具,对于自己的业务都不是很合适,所以总结了一下网上的方案,最终定下来是这样子的,主要使用dom4j做操作 m ...
- java可变参数 map_Java第6期Collection、Map、迭代器、泛型、可变参数、集合工具类、集合结构、Debug...
集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集 ...
- Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug
欢迎访问我的个人网站:https://bengtian.club 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度 ...
- 字符串工具类、数组工具类、集合工具类、转型操作工具类、编码与解码操作工具类...
package hjp.smart4j.framework.util;import org.apache.commons.lang3.StringUtils;/*** 字符串工具类*/ public ...
- java 集合反射_关于granite源码包CollectionUtil集合工具类获取集合反射类型、实例化各种集合类型HashSet/ArrayList等...
一.前言 基于granite源码包org.granite.util.CollectionUtil集合工具类,分别获取集合反射类型java.lang.reflect.Type.实例化newCollect ...
- java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换
为了编程人员的方便及处理数据的安全性,Java特别提供了两个非常有用的工具类: 一.Collections 1.Collections类的特点: 集合框架的工具类.里面定义的都是静态方法. 2.Col ...
- java 集合工具类_Java集合中Collections工具类总结
Collections工具类 Collections 是一个操作 Collection(Set. List )和 Map 等集合的工具类 Collection和Collections的区别? Coll ...
- 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))
1.Map集合概述和特点 1.需求: 根据学号获取学生姓名 2.Map接口概述 查看API可以知道: 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能 ...
- JAVA 工具类大集合
身份证号码验证. 正则表达式大全. 常用日期工具类. 图片高报真缩放工具类. 文件类工具类 1.身份证号码验证 package xxx;import java.text.ParseException; ...
最新文章
- 显示mac电脑中隐藏的文件和文件夹
- 最简单的 java 防反编译技巧
- Flink Forward Asia 2020 - Keynote 总结
- python 如何放心干净的卸载模块
- ACNet论文阅读笔记
- 查漏补缺方为上策!!两万六字总结vue的基本使用和高级特性,周边插件vuex和vue-router任你挑选
- 英特尔固态硬盘540s开卡_英特尔Z490主板绝配?技嘉PCIe 3.0 x8固态硬盘测试:6.5GB/s读速...
- WiFi 抓包工具使用SOP(OmniPeek)
- 嵌入式单片机STM32原理及应用
- 白盒测试:三角形问题实验报告
- 支持ldap的邮箱服务器,U-Mail邮件系统LDAP同步邮箱地址簿教程
- Python+FFmpeg音视频格式转换
- 地图编辑器开发(一)
- SSM开发相关安装教程(idea、tomcat、maven、DB)
- dialog.js弹窗插件
- 代谢组数据:QC归一化(R语言:MetNormalizer包)
- linux下的shell脚本
- 查看自己本机的ip地址、DNS服务器地址
- python elasticsearch 提示 ‘update‘ API and will be removed
- 制造企业如何从0到1进行信息化建设?
热门文章
- 关于领域模型与技术架构的关系的思考
- 最简单的TCP网络封包解包(补充)-序列化
- SQL Server海量数据查询代码优化建议
- 使用megacli命理查看硬raid信息
- 正则去除汉字和只取数字
- OpenGLES.gpus_ReturnNotPermittedKillClient
- R语言系列:分布一致性和离散一致性检验
- linux内核升级到3.4
- 线上解决Resin服务响应过慢的几个方法(转)
- 讲师BLOG:http://linuxguest.blog.51cto.com/