C#中DataRow加扩展方式-转为对象
public static T ConvertToModel<T>(this DataRow dr) { T t = Activator.CreateInstance<T>(); //创建实例 PropertyInfo[] pi = t.GetType().GetProperties();//取类的属性 //属性赋值 foreach (PropertyInfo p in pi) { if (dr.Table.Columns.Contains(p.Name) && !string.IsNullOrWhiteSpace(dr[p.Name].ToString())) { p.SetValue(t, Convert.ChangeType(dr[p.Name], p.PropertyType), null); } } return t; //Return }
List<CommPay> list = new List<CommPay>(); foreach (DataRow dr in dt.Rows) { list.Add(dr.ConvertToModel<CommPay>()); }