Convert DataTable to List in c#

DataTable dt = ‘…some service called to fill this datatable….’
List<DemoModel> demoDetails = new List<DemoModel>();
demoDetails = ConvertDataTable<DemoModel>(dt);


public static List<T> ConvertDataTable<T>(DataTable dt)
List<T> data = new List<T>();
foreach (DataRow row in dt.Rows)
T item = GetItem<T>(row);
return data;


private static T GetItem<T>(DataRow dr)
Type temp = typeof(T);
T obj = Activator.CreateInstance<T>();

foreach (DataColumn column in dr.Table.Columns)
foreach (PropertyInfo pro in temp.GetProperties())
if (pro.Name == column.ColumnName)
pro.SetValue(obj, dr[column.ColumnName], null);
return obj;


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s