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;
}
/// 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;
}
相关文章推荐
- [Json] C#ConvertJson|List转成Json|对象|集合|DataSet|DataTable|DataReader转成Json (转载)
- C# 将list<>泛型集合 转化为 DataTable
- 5-14 EF使用存储过程以及LIST泛型对象转换为Datatable
- C#中DataTable与泛型集合互转(支持泛型集合中对象包含枚举)
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- 关于c# 泛型List集合对象的用法及相关操作
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- C# 将DataTable装换位List<T> 泛型
- C# 泛型LIST转DataTable
- 实体对象,List泛型 转换为DataTable
- 学习笔记(一)C#基础和泛型List和DataTable和HashTable和Dictionary的简单用法--存值 取值
- 【C# 工具类】将DataTable转化为 List集合/对象
- wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合
- c# 把List<T>转成DataTable对象,批量导入Sqlserver库
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- DataTable转任意类型对象List数组-----工具通用类(利用反射和泛型)
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- JSON之Asp.net MVC C#对象转JSON,DataTable转JSON,List<T>转JSON,JSON转List<T>,JSON转C#对象
- C#中对List<Object>泛型集合,根据对象的某一属性进行升序排序
- 关于c# 泛型List集合对象的用法及相关操作