泛型 List轉換成DataTable
阿新 • • 發佈:2020-12-14
1 private DataTable listToDataTable<T>(List<T> ListItem)
2 {
3 //實列化DataTable物件
4 var dt = new DataTable(typeof(T).Name);
5
6 //通過反射獲取List實體的屬性資訊
7 PropertyInfo[] propertyInfos = typeof(T).GetProperties(BindingFlags. Public | BindingFlags.Instance);
8
9 //給DataTable 新增定義
10 foreach (var propertyInfo in propertyInfos)
11 {
12 dt.Columns.Add(propertyInfo.Name, propertyInfo.PropertyType);
13 }
14
15 //給DataTable 新增資料
16 foreach ( T item in ListItem)
17 {
18 var values = new object[propertyInfos.Length];
19 for (int i = 0; i < propertyInfos.Length; i++)
20 {
21 values[i] = propertyInfos[i].GetValue(item);
22 }
23 dt. Rows.Add(values);
24 }
25
26 //返回DataTable
27 return dt;
28 }