public static List<T> ToList<T>(this DataTable dt) where T : class, new()
{
//创建一个属性的列表
var prlist = new List<PropertyInfo>();
//获取TResult的类型实例 反射的入口
Type t = typeof(T);
//获得TResult 的所有的Public 属性 并找出TResult属性和DataTable的列名称相同的属性(PropertyInfo) 并加入到属性列表
Array.ForEach<PropertyInfo>(t.GetProperties(), p =>
{
if (dt.Columns.IndexOf(p.Name) != -1) prlist.Add(p);
});
//创建返回的集合
var oblist = new List<T>();
foreach (DataRow row in dt.Rows)
{
//创建TResult的实例
var ob = new T();
//到对应的数据 并赋值
prlist.ForEach(p =>
{
if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null);
});
//放入到返回的集合中.
oblist.Add(ob);
}
return oblist;
}
2021-12-01
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 今天给大家分享一下,如何将DataTable转为List和Array,为此小U也花了不少时间研究,最后发现没有那么...
- 我用的将集合类转换为DataTable 的方法 将DataTable转换为List<T> 其它的实现方式 返回指定的列
- 介绍:List/IEnumerable转换到DataTable/DataView,以及DataTable转换到Li...