You're mostly there, you should be able to do this:
foreach (var dataItem in listOfData)
{
DataRow row = dataTable.NewRow();
for (int i = 0; i < props.Length; i++)
{
row[i] = props[i].GetValue(dataItem);
}
dataTable.Rows.Add(row);
}