Funzione:
public DataTable ConvertToDataTable
{
var DataTableReturn = new DataTable();
Type t = items.First().GetType();
//Ottengo nome e tipo colonna
foreach (System.Reflection.PropertyInfo propertyInfo in t.GetProperties())
{
//DataTableReturn.Columns.Add(propertyInfo.Name, Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType);
DataTableReturn.Columns.Add(propertyInfo.Name, typeof(string));
}
//caricamento dati
foreach (var item in items)
{
DataRow row = DataTableReturn.NewRow();
foreach (System.Reflection.PropertyInfo p in t.GetProperties())
row[p.Name] = p.GetValue(item, null) ?? DBNull.Value;
DataTableReturn.Rows.Add(row);
}
return DataTableReturn;
}
Esempio di utilizzo.
var risultato = (from Dati in ListaElementi()
select new
{
CampoA = Dati.CampoA,
CampoB = Dati.CampoB
});
DataTable DataTableReturn = ConvertToDataTable(risultato.AsEnumerable());
Nessun commento:
Posta un commento