/// <summary> /// 將List轉換為DataTable /// </summary> /// <param name="list">請求數據</param> /// <returns></returns> public static DataTable ListToDataTable<T>(List<T> list) { //創建一個名為"tableName"的空表 DataTable dt = new DataTable("tableName"); //創建傳入對象名稱的列 foreach (var item in list.FirstOrDefault().GetType().GetProperties()) { dt.Columns.Add(item.Name); } //循環存儲 foreach (var item in list) { //新加行 DataRow value = dt.NewRow(); //根據DataTable中的值,進行對應的賦值 foreach (DataColumn dtColumn in dt.Columns) { int i = dt.Columns.IndexOf(dtColumn); //基元元素,直接復制,對象類型等,進行序列化 if (value.GetType().IsPrimitive) { value[i] = item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item); } else { value[i] = JsonConvert.SerializeObject(item.GetType().GetProperty(dtColumn.ColumnName).GetValue(item)); } } dt.Rows.Add(value); } return dt; }