public System.Data.DataTable ToDataTable(object data) { System.Data.DataTable table = new System.Data.DataTable(); System.ComponentModel.PropertyDescriptorCollection props = System.ComponentModel.TypeDescriptor.GetProperties( data.GetType().GetGenericArguments()[0]); for (int i = 0; i < props.Count; i++) { System.ComponentModel.PropertyDescriptor prop = props[i]; if (prop.PropertyType.Name.Contains("Nullable")) table.Columns.Add(prop.Name); else table.Columns.Add(prop.Name, prop.PropertyType); } object[] values = new object[props.Count]; foreach( var item in data as System.Collections.IEnumerable) { for( int i = 0; i < values.Lenght; i++; ) values[i] = props[i].GetValue(item); table.Rows.Add(values); } return (table); }
Type mytype = data.GetType(); foreach (var prop in mytype.GetProperties()) { table.Columns.Add(prop.Name, prop.GetValue(data,null).GetType()); }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)