DataTable和List集合互转
/// <summary>
/// 将集合转换成DataTable
/// </summary>
/// <param name="list">集合</param>
/// <returns></returns>
public static DataTable ToDataTable(IList list)
{
DataTable result = new DataTable();
if (list.Count > )
{
PropertyInfo[] propertys = list[].GetType().GetProperties();
foreach (PropertyInfo pi in propertys)
{
result.Columns.Add(pi.Name, pi.PropertyType);
}
for (int i = ; i < list.Count; i++)
{
ArrayList tempList = new ArrayList();
foreach (PropertyInfo pi in propertys)
{
object obj = pi.GetValue(list[i], null);
tempList.Add(obj);
}
object[] array = tempList.ToArray();
result.LoadDataRow(array, true);
}
}
return result;
} /// <summary>
/// 讲DataTable转换成集合
/// </summary>
/// <param name="dt">数据表</param>
/// <returns></returns>
public static IList<CarNum> ToList(DataTable dt)
{
// 定义集合
IList<CarNum> ts = new List<CarNum>(); // 获得此模型的类型
Type type = typeof(CarNum); string tempName = ""; foreach (DataRow dr in dt.Rows)
{
CarNum t = new CarNum(); // 获得此模型的公共属性
PropertyInfo[] propertys = t.GetType().GetProperties(); foreach (PropertyInfo pi in propertys)
{
tempName = pi.Name; // 检查DataTable是否包含此列
if (dt.Columns.Contains(tempName))
{
// 判断此属性是否有Setter
if (!pi.CanWrite) continue; object value = dr[tempName];
if (value != DBNull.Value)
pi.SetValue(t, value, null);
}
} ts.Add(t);
} return ts; }
DataTable和List集合互转的更多相关文章
- C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)
		最近在做WCF,因为是内部接口,很多地方直接用的弱类型返回(DataSet),这其实是一种非常不好的方式,最近将项目做了修改,将所有接口返回值都修改成强类型,这样可以减少很多与客户端开发人员的沟通,结 ... 
- 二:C#对象、集合、DataTable与Json内容互转示例;
		导航目录: Newtonsoft.Json 概述 一:Newtonsoft.Json 支持序列化与反序列化的.net 对象类型: 二:C#对象.集合.DataTable与Json内容互转示例: ... 
- [工具类]DataTable与泛型集合List互转
		写在前面 工作中经常遇到datatable与list,对于datatable而言操作起来不太方便.所以有的时候还是非常希望通过泛型集合来进行操作的.所以这里就封装了一个扩展类.也方便使用. 类 方法中 ... 
- DataTable 和Json 字符串互转
		#region DataTable 转换为Json字符串实例方法 /// <summary> /// GetClassTypeJosn 的摘要说明 /// </summary> ... 
- DataTable,List,Dictonary互转,筛选及相关写法
		1.创建自定义DataTable /// 创建自定义DataTable(一) 根据列名字符串数组, /// </summary> /// <param name="sLi ... 
- 再谈使用Emit把Datatable转换为对象集合(List<T>)
		一.前因和存在的问题 前面我写了一篇<使用Emit把Datatable转换为对象集合(List<T>)>的博文,其实起源于我自己编写的一个orm工具(见前面几篇博文有介绍),里 ... 
- 使用Emit把Datatable转换为对象集合(List<T>)
		Emit生成动态方法部分摘自网上,但是经过修改,加入了对委托的缓存以及类结构的调整,使之调用更简洁方便.大致的思路是:要实现转换datatable到某个指定对象的集合,本质是实现转换一个datarow ... 
- 将DataTable 存到一个集合当中
		将DataTable 存到一个集合中 此做法来自:http://www.codeproject.com/Articles/692832/Simple-way-of-using-SQL-DataTabl ... 
- js数组和集合互转
		js数组和集合互转可用于去重: 数组转集合 var arr = [55, 44, 65]; var set = new Set(arr); console.log(set.size === arr ... 
随机推荐
- rm加转义很危险
			rm -r 想转义一个空格字符,转得不对 -r, -R, --recursive 递归删除目录及其内容 连续rm了n个不想rm的文件夹.%>_<% 想起来以前有人也因为rm的失误把整个wo ... 
- How to Setup Chroot SFTP in Linux (Allow Only SFTP, not SSH)
			1. Create a New Group Create a group called sftpusers. Only users who belong to this group will be a ... 
- Learning WCF Chapter 3 Bindings  One-Way and Duplex Communication
			One-Way and Duplex Communication A message exchange pattern describes the way messages are sent betw ... 
- -_-#flash播放器自适应
			设置断点,几个断点下的固定布局 
- HDOJ/HDU 1297 Children’s Queue(推导~大数)
			Problem Description There are many students in PHT School. One day, the headmaster whose name is Pig ... 
- js遍历数组和遍历对象的区别
			<script> //----------------for用来遍历数组对象-- var i,myArr = [1,2,3]; for (var i = 0; i < myArr.l ... 
- 如何将下载好的jar包添加到maven本地仓库
			1.首先在pom.xml中添加 <dependency> <groupId>org.springframework.security</groupId> ... 
- linux驱动开发之HelloWorld
			最近实习,公司项目搞的是平板开发,而我分配的任务是将驱动加载到内核中. 准备工作,必要知识了解:加载有两种方式,一种是动态加载和卸载即模块加载,另一种是直接编译进入内核:Linux内核把驱动程序划分为 ... 
- w10 系统升级
			怎么把电脑升级到w10系统? 下载一个软件,Windows10Upgrade9252.exe, 5M左右,把windows更新开启后,运行即可! 升级后,请把windows.old 文件夹删除,这个文 ... 
- 浅谈数据结构-Boyer-Moore算法
			上文讲解了KMP算法,这种算法在字符串匹配中应用比较少,在各种文本编辑器中的查找功能大多采用Boyer-Moore算法.1977年,德克萨斯大学的Robert S. Boyer教授和J Strothe ... 
