I need to generate an \'IEnumerable from a DataTable that I receive as an input from another system. The following code worked in ASP.NET 4.6.1.
public st
Not about most efficient but for an alternative, you can use the Select method:
DataRow[] rows= dataTable.Select();
And now you have an IEnumerable of rows. This method may help someone:
public static List ConvertDataTableToGenericList(DataTable dt)
{
var columnNames = dt.Columns.Cast()
.Select(c => c.ColumnName)
.ToList();
var properties = typeof(T).GetProperties();
DataRow[] rows= dt.Select();
return rows.Select(row =>
{
var objT = Activator.CreateInstance();
foreach (var pro in properties)
{
if (columnNames.Contains(pro.Name))
pro.SetValue(objT, row[pro.Name]);
}
return objT;
}).ToList();
}