DataTable 转List
忘了出处 ,这个是转别人的
public class datatolist<t> where t : new()
{
/// <summary>
/// 利用反射和泛型
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static list<t> converttolist(datatable dt)
{
// 定义集合
list<t> ts = new list<t>();
// 获得此模型的类型
type type = typeof(t);
//定义一个临时变量
string tempname = string.empty;
//遍历datatable中所有的数据行
if (dt != null)
{
foreach (datarow dr in dt.rows)
{
t t = new t();
// 获得此模型的公共属性
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;
}
}
上一篇: php开发广泛用什么开发工具
推荐阅读
-
DataTable 转List
-
【转载】C#通过Remove方法移除DataTable中的某一列数据
-
从dedecms上拿下来的汉字转拼音函数
-
go语言LeeCode刷题记:13. 罗马数字转整数
-
织梦之UTF-8 转GB编码
-
基于词库的中文转拼音优质解决方案(PHP)
-
让你拥有自己的QQ在线显示代码(又是转,呵呵)_PHP
-
UTF-8转GBK编码有关问题,有什么好的解决方案
-
转:Linux 技巧:让进程在后台可靠运行的几种方法 博客分类: Linux LinuxIBMSSHBashUbuntu
-
转:Linux 技巧:让进程在后台可靠运行的几种方法 博客分类: Linux LinuxIBMSSHBashUbuntu