您的位置:首页 > 其它

DataTable 转化为List

2015-08-17 20:32 169 查看

方法1

// where T:class,new () 这说明T是一个类型,下面可以定义 T mydata = new T();

public static List<T> DataTableToList<T>(DataTable dt) where T:class,new ()

{

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

foreach (DataRow row in dt.Rows)

{

T mydata = new T();

PropertyInfo[] info = mydata.GetType().GetProperties();

string name = string.Empty;

foreach (var pro in info)

{

name = pro.Name;

if (dt.Columns.Contains(name))

{

pro.SetValue(mydata, row[name], null);

}

}

list.Add(mydata);

}

return list;

}

方法2

private List<T> DataTableToList<T>(T obj, DataTable dt)

{

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

foreach (DataRow row in dt.Rows)

{

Type t = typeof(T);

PropertyInfo[] info = t.GetProperties();

foreach (DataColumn col in dt.Columns)

{

info.Where(s => s.Name.ToLower() == col.ColumnName.ToLower())

.Select(s => s).First().SetValue(obj, row[col.ColumnName].ToString(), null);

}

list.Add(obj);

}

return list;

}

public class Mydata

{

private string column1;

public string Column1

{

get { return column1; }

set { column1 = value; }

}

private string column2;

public string Column2

{

get { return column2; }

set { column2 = value; }

}

private string column3;

public string Column3

{

get { return column3; }

set { column3 = value; }

}

}


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