您的位置:首页 > 其它

将一个DataTable转换成一个List<T>的泛型集合

2012-03-26 12:25 513 查看
//// 将一个DataTable转换成一个List<T>的泛型集合

/// <summary>

/// DataTable装换成实体类T

/// </summary>

/// <typeparam name="T"></typeparam>

/// <param name="dt"></param>

/// <returns></returns>

public List<T> DataTableToList<T>(DataTable dt)

{

List<T> lt = new List<T>();

if (dt == null || dt.Rows.Count == 0)

{

return lt;

}

Type objType = typeof(T);

foreach (DataRow dr in dt.Rows)

{

object obj = System.Activator.CreateInstance(objType);//创建实例

foreach (System.Reflection.PropertyInfo pi in objType.GetProperties())//遍历T类的所有属性

{

if (pi.PropertyType.IsPublic && pi.CanWrite && dt.Columns.Contains(pi.Name))//属性是否为public和可写

{

Type pType = Type.GetType(pi.PropertyType.FullName);//属性类型

object value = Convert.ChangeType(dr[pi.Name], pType);//转换dt值为对应属性的类型

objType.GetProperty(pi.Name).SetValue(obj, value, null);//赋值

}

}

lt.Add((T)obj);

}

return lt;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐