public class DataHelper
{
public static List<object[]> GetDataTable<T>(IEnumerable<T> list)
{
Type type = typeof(T);
var properties = type.GetProperties(BindingFlags.Public | BindingFlags.Instance);
var rows = new List<object[]>();
var headerRow = new object[properties.Length];
for (int i = 0; i < properties.Length; i++)
{
var name = properties[i].Name;
headerRow[i] = char.ToLowerInvariant(name[0]) + name.Substring(1);
}
rows.Add(headerRow);
foreach(var item in list) {
var row = new object[properties.Length];
for (int i = 0; i < properties.Length; i++)
{
row[i] = properties[i].GetValue(item);
}
rows.Add(row);
}
return rows;
}
}
Parse the JSON datatable in typescript
const fromDataTable = (data: any[]): any[] => {
const firstRow = data.shift();
return data.map((row) => firstRow.reduce((obj, key, i) => ((obj[key] = row[i]) || 1) && obj, {}));
};
220900cookie-checkC# Convert array of objects to flat (CSV/JSON array) table