using System.Collections.Generic;
public static void Main()
var dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("username", typeof(string));
List<dynamic> dynamicDt = dt.ToDynamic();
var usernamevalue = dynamicDt[1].username;
JSONresult = JsonConvert.SerializeObject(dt);
Console.WriteLine(JSONresult);
Console.WriteLine(usernamevalue);
Console.WriteLine(dynamicDt[0]);
public static class DataTableExtensions
public static List<dynamic> ToDynamic(this DataTable dt)
var dynamicDt = new List<dynamic>();
foreach (DataRow row in dt.Rows)
dynamic dyn = new ExpandoObject();
foreach (DataColumn column in dt.Columns)
var dic = (IDictionary<string, object>)dyn;
dic[column.ColumnName] = row[column];