public static DataTable ListToDataTable<T>(IList<T> list) { DataTable dt = new DataTable(); DataRow row; PropertyInfo[] pInfos= typeof(T).GetProperties(); foreach (PropertyInfo p in pInfos) { dt.Columns.Add(p.Name); } foreach (T temp in list) { row = dt.NewRow(); foreach (PropertyInfo p in pInfos) { row[p.Name] = temp.GetType().GetProperty(p.Name).GetValue(temp,null); } dt.Rows.Add(row); } return dt; }