few dayz ago came across THIS question. the solution to this can easily be figured out by the new dynamic features introduced in .Net 4.0. i have made a project to demonstrate this. the main code in the project goes like this public static dynamic [] GetDynamicObject( DataTable dt, Dictionary < string , string > mapping) { List < dynamic > returnList = new List < dynamic >(); foreach ( DataRow row in dt.Rows) { dynamic obj = new ExpandoObject (); ...