1 public DataTable ConvertToDataTable<T>(IList<T> data)
2 {
3 PropertyDescriptorCollection properties =
4 TypeDescriptor.GetProperties(typeof(T));
5 DataTable table = new DataTable();
6 foreach (PropertyDescriptor prop in properties)
7 table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
8 foreach (T item in data)
9 {
10 DataRow row = table.NewRow();
11 foreach (PropertyDescriptor prop in properties)
12 row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
13 table.Rows.Add(row);
14 }
15 return table;
16
17 }