public static List<T> ToList<T>(this DataTable dt) where T : class, new()
{
//創(chuàng)建一個屬性的列表
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);
});
//創(chuàng)建返回的集合
var oblist = new List<T>();
foreach (DataRow row in dt.Rows)
{
//創(chuàng)建TResult的實例
var ob = new T();
//到對應(yīng)的數(shù)據(jù) 并賦值
prlist.ForEach(p =>
{
if (row[p.Name] != DBNull.Value) p.SetValue(ob, row[p.Name], null);
});
//放入到返回的集合中.
oblist.Add(ob);
}
return oblist;
}
2021-12-01
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 今天給大家分享一下,如何將DataTable轉(zhuǎn)為List和Array,為此小U也花了不少時間研究,最后發(fā)現(xiàn)沒有那么...
- 我用的將集合類轉(zhuǎn)換為DataTable 的方法 將DataTable轉(zhuǎn)換為List<T> 其它的實現(xiàn)方式 返回指定的列
- 介紹:List/IEnumerable轉(zhuǎn)換到DataTable/DataView,以及DataTable轉(zhuǎn)換到Li...
- 今天感恩節(jié)哎,感謝一直在我身邊的親朋好友。感恩相遇!感恩不離不棄。 中午開了第一次的黨會,身份的轉(zhuǎn)變要...