List对象集合转换成DataSet
1 public DataSet ConvertToDataSet<T>(IList<T> list) 2 { 3 if (list == null || list.Count <= 0) 4 { 5 return null; 6 } 7 DataSet ds = new DataSet(); 8 DataTable dt = new DataTable(typeof(T).Name); 9 DataColumn column; 10 DataRow row; 11 System.Reflection.PropertyInfo[] myPropertyInfo = typeof(T).GetProperties(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance); 12 foreach (T t in list) 13 { 14 if (t == null) 15 { 16 continue; 17 } 18 row = dt.NewRow(); 19 for (int i = 0, j = myPropertyInfo.Length; i < j; i++) 20 { 21 System.Reflection.PropertyInfo pi = myPropertyInfo[i]; 22 string name = pi.Name; 23 24 25 26 if (dt.Columns[name] == null) 27 { 28 var type = pi.PropertyType; 29 if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>)) 30 { 31 type = type.GetGenericArguments()[0]; 32 } 33 column = new DataColumn(name, type); 34 dt.Columns.Add(column); 35 } 36 row[name] = pi.GetValue(t, null); 37 } 38 dt.Rows.Add(row); 39 } 40 ds.Tables.Add(dt); 41 return ds; 42 }
List对象集合转换成DataTable
1 public static DataTable ToDataTable<T>(IEnumerable<T> list) 2 { 3 PropertyInfo[] modelItemType = typeof(T).GetProperties(); 4 DataTable dataTable = new DataTable(); 5 dataTable.Columns.AddRange(modelItemType.Select(Columns => new DataColumn(Columns.Name, Columns.PropertyType)).ToArray()); 6 if (list.Count() > 0) 7 { 8 for (int i = 0; i < list.Count(); i++) 9 { 10 ArrayList tempList = new ArrayList(); 11 foreach (PropertyInfo pi in modelItemType) 12 { 13 object obj = pi.GetValue(list.ElementAt(i), null); 14 tempList.Add(obj); 15 } 16 object[] dataRow = tempList.ToArray(); 17 dataTable.LoadDataRow(dataRow, true); 18 } 19 } 20 return dataTable; 21 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix