DataTable dt = new DataTable();
DataColumn dc = new DataColumn("name", typeof(string));
dt.Columns.Add(dc);
dc = new DataColumn("age", typeof(Int32));
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr["name"] = "张三";
dr["age"] = 10;
dt.Rows.Add(dr);
DataRow dr2 = dt.NewRow();
dr2["name"] = "李四";
dr2["age"] = 20;
dt.Rows.Add(dr2);
List<Person> list = new List<Person>();
Type t = typeof(Person);
foreach (DataRow drnew in dt.Rows)
{
Person p = new Person();
PropertyInfo[] infos= t.GetProperties();
foreach(var pi in infos)
{
if(dt.Columns.Contains(pi.Name))
{
pi.SetValue(p, drnew[pi.Name]);
}
}
list.Add(p);
}