写在前面

在实际项目中,用到了将集合转换为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相关推荐

  1. Unity 工具类 之 Excel 转换为 json、csv、xml、lua格式

    Unity 工具类 之 Excel 转换为 json.csv.xml.csv 格式 目录 Unity 工具类 之 Excel 转换为 json.csv.xml.csv 格式 一.介绍 二.操作原理 三 ...

  2. 好用的对象转xml、xml转对象工具类-支持集合嵌套转换(Java实现)

    好用的对象转xml.xml转对象工具类-支持集合嵌套转换(Java实现) 网上找了很多转换工具,对于自己的业务都不是很合适,所以总结了一下网上的方案,最终定下来是这样子的,主要使用dom4j做操作 m ...

  3. java可变参数 map_Java第6期Collection、Map、迭代器、泛型、可变参数、集合工具类、集合结构、Debug...

    集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢?数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型值.集 ...

  4. Java自学第6期——Collection、Map、迭代器、泛型、可变参数、集合工具类、集合数据结构、Debug

    欢迎访问我的个人网站:https://bengtian.club 集合:集合是java中提供的一种容器,可以用来存储多个数据. 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的.集合的长度 ...

  5. 字符串工具类、数组工具类、集合工具类、转型操作工具类、编码与解码操作工具类...

    package hjp.smart4j.framework.util;import org.apache.commons.lang3.StringUtils;/*** 字符串工具类*/ public ...

  6. java 集合反射_关于granite源码包CollectionUtil集合工具类获取集合反射类型、实例化各种集合类型HashSet/ArrayList等...

    一.前言 基于granite源码包org.granite.util.CollectionUtil集合工具类,分别获取集合反射类型java.lang.reflect.Type.实例化newCollect ...

  7. java中集合类的转换_Java中的两个常用工具类及集合数组的相互转换

    为了编程人员的方便及处理数据的安全性,Java特别提供了两个非常有用的工具类: 一.Collections 1.Collections类的特点: 集合框架的工具类.里面定义的都是静态方法. 2.Col ...

  8. java 集合工具类_Java集合中Collections工具类总结

    Collections工具类 Collections 是一个操作 Collection(Set. List )和 Map 等集合的工具类 Collection和Collections的区别? Coll ...

  9. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))

    1.Map集合概述和特点 1.需求:    根据学号获取学生姓名 2.Map接口概述     查看API可以知道:     将键映射到值的对象     一个映射不能包含重复的键     每个键最多只能 ...

  10. JAVA 工具类大集合

    身份证号码验证. 正则表达式大全. 常用日期工具类. 图片高报真缩放工具类. 文件类工具类 1.身份证号码验证 package xxx;import java.text.ParseException; ...

最新文章

  1. 显示mac电脑中隐藏的文件和文件夹
  2. 最简单的 java 防反编译技巧
  3. Flink Forward Asia 2020 - Keynote 总结
  4. python 如何放心干净的卸载模块
  5. ACNet论文阅读笔记
  6. 查漏补缺方为上策!!两万六字总结vue的基本使用和高级特性,周边插件vuex和vue-router任你挑选
  7. 英特尔固态硬盘540s开卡_英特尔Z490主板绝配?技嘉PCIe 3.0 x8固态硬盘测试:6.5GB/s读速...
  8. WiFi 抓包工具使用SOP(OmniPeek)
  9. 嵌入式单片机STM32原理及应用
  10. 白盒测试:三角形问题实验报告
  11. 支持ldap的邮箱服务器,U-Mail邮件系统LDAP同步邮箱地址簿教程
  12. Python+FFmpeg音视频格式转换
  13. 地图编辑器开发(一)
  14. SSM开发相关安装教程(idea、tomcat、maven、DB)
  15. dialog.js弹窗插件
  16. 代谢组数据:QC归一化(R语言:MetNormalizer包)
  17. linux下的shell脚本
  18. 查看自己本机的ip地址、DNS服务器地址
  19. python elasticsearch 提示 ‘update‘ API and will be removed
  20. 制造企业如何从0到1进行信息化建设?

热门文章

  1. 关于领域模型与技术架构的关系的思考
  2. 最简单的TCP网络封包解包(补充)-序列化
  3. SQL Server海量数据查询代码优化建议
  4. 使用megacli命理查看硬raid信息
  5. 正则去除汉字和只取数字
  6. OpenGLES.gpus_ReturnNotPermittedKillClient
  7. R语言系列:分布一致性和离散一致性检验
  8. linux内核升级到3.4
  9. 线上解决Resin服务响应过慢的几个方法(转)
  10. 讲师BLOG:http://linuxguest.blog.51cto.com/