DataSet 反射轉換成 List<T>
阿新 • • 發佈:2018-08-02
param null inf indexof 反射 instance creat [] tostring
/// <summary> /// DataSet轉換成指定返回類型的實體集合 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="ds"></param> /// <returns></returns> public static List<T> DataSetToList<T>(DataSet ds) { PropertyInfo[] properties= typeof(T).GetProperties(); List<T> list = new List<T>(); foreach (DataRow dr in ds.Tables[0].Rows) { T temp = System.Activator.CreateInstance<T>(); foreach (PropertyInfo pro in properties) {int colIndex = ds.Tables[0].Columns.IndexOf(pro.Name); if (colIndex > -1) { if (pro.PropertyType == typeof(String)) { pro.SetValue(temp, dr[colIndex].ToString(), null); }else if (pro.PropertyType == typeof(int)) { pro.SetValue(temp, (int)dr[colIndex], null); } else if (pro.PropertyType == typeof(long)) { pro.SetValue(temp, (long)dr[colIndex], null); } } } list.Add(temp); } return list; }
DataSet 反射轉換成 List<T>