将列添加到循环内的DataTable中

时间:2017-10-13 10:44:23

标签: c# model-view-controller datatable

我想知道是否有办法在foreach循环中自动添加DataTable中的列?这就是我的意思"自动"。

我想到了这样的事情:

DataTable dt = new DataTable();

foreach (var item in model.Statistik)
{
   dt.Columns.Add();
   row = dt.NewRow();
   row[//Name of column goes here] = // either item or item.property;
   dt.Rows.Add(row);
}

这比在每个循环之前显式地命名每一列要有效得多。因为,如果某些属性发生变化或被删除会发生什么?因此,这是我想要摆脱的东西。

1 个答案:

答案 0 :(得分:0)

我不认为您了解dt.Columnsdt.Rows的关联方式。 Column有一组DataTable个。RowDataTable中的每个Column都包含所有匹配的列 - 您在每个Row中都不会有唯一的dt.Columns.Add。因此,每次执行Row时,您都会为每个Row[,旧的或新的添加一列。

另外,如果您没有为]指定名称,您如何期望DataTable<列名称> viewDidLayoutSubviews能够正常工作?