public class ToObject
{
/// <summary>
///
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dt"></param>
/// <returns></returns>
public static List<T> List<T>(DataTable dt)
{
var list = new List<T>();
Type t = typeof (T);
var plist = new List<PropertyInfo>(typeof (T).GetProperties());
foreach (DataRow item in dt.Rows)
{
T s = System.Activator.CreateInstance<T>();
for (int i = 0; i < dt.Columns.Count; i++)
{
PropertyInfo info = plist.Find(p => p.Name == dt.Columns[i].ColumnName);
if (info != null)
{
if (!Convert.IsDBNull(item[i]))
{
info.SetValue(s, item[i], null);
}
}
}
list.Add(s);
}
return list;
}
}
调用:
DataTable dt= odbc.ExecuteDataTable(@"select top(100) Id , DestNumber , Content , SmsId , UserName , Password from Send";
var list=ToObject.List<SendMsgModel>(dt);
扩展方法 DataTable To List<T>
最新推荐文章于 2022-09-09 17:41:35 发布