List変換データTable

4837 ワード

 1 public static class IListUtil

 2 {

 3     /// <summary>

 4     ///  DataTable 

 5     /// </summary>

 6     /// <param name="list"> </param>

 7     /// <returns></returns>

 8     public static DataTable AsDataTable<T>(this IList<T> list)

 9     {

10         DataTable result = new DataTable();

11         if (list.Count > 0)

12         {

13             PropertyInfo[] propertys = typeof(T).GetProperties();

14             foreach (PropertyInfo pi in propertys)

15             {

16                 result.Columns.Add(pi.Name, pi.PropertyType);

17             }

18 

19             for (int i = 0; i < list.Count; i++)

20             {

21                 ArrayList tempList = new ArrayList();

22                 foreach (var item in propertys)

23                 {

24                     object obj = item.GetValue(list[i], null);

25                     tempList.Add(obj);

26                 }

27 

28                 object[] array = tempList.ToArray();

29                 result.LoadDataRow(array, true);

30             }

31         }

32         return result;

33     }

34 

35 

36 }