您的位置:首页 > 编程语言 > C#

C# 泛型DataTable转对象List

2017-04-26 11:50 351 查看
/// <summary>

/// Table转List

/// </summary>

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

/// <returns></returns>

public List<T> TableToList(DataTable dt)

{

var result = new List<T>();

var type = typeof(T);

foreach (DataRow row in dt.Rows)

{

PropertyInfo[] array = type.GetProperties(); //集合属性数组

var entity = Activator.CreateInstance<T>(); //新建对象实例

foreach (var p in array)

{

if (!dt.Columns.Contains(p.Name) || row[p.Name] == null || row[p.Name] == DBNull.Value)

{

continue;

}

if (p.PropertyType == typeof(DateTime) && Convert.ToDateTime(row[p.Name]) < Convert.ToDateTime("1753-01-01"))

{

continue;

}

try

{

//类型强转,将table字段类型转为集合字段类型

var obj = Convert.ChangeType(row[p.Name], p.PropertyType);

p.SetValue(entity, obj, null);

}

catch (Exception)

{

continue;

}

}

result.Add(entity);

}

return result;

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