I have a C# function that converts a DataTable into a list of ExpandoObjects, where each object represents a row with properties dynamically assigned from the column names and values
public static IEnumerable<ExpandoObject> ToExpandoObject(this DataTable dataTable)
{
List<ExpandoObject> dynamicDt = [];
var splitColumnNames = dataTable.Columns.Cast<DataColumn>().Select(c => c.ColumnName.Split("_")[0]).ToArray();
foreach (DataRow row in dataTable.Rows)
{
dynamic dyn = new ExpandoObject();
dynamicDt.Add(dyn);
var columnIndex = 0;
foreach (DataColumn column in dataTable.Columns)
{
var dic = (IDictionary<string, object>)dyn;
dic[column.ColumnName] = ConvertColumnValue(row[column], splitColumnNames[columnIndex]);
columnIndex++;
}
}
return dynamicDt;
}
I want to improve the performance of this function by utilizing parallel processing How can I modify this function to run efficiently in parallel
New contributor
Manisha Mns is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.