我想知道是否有方法在foreach循环内的DataTable中自动添加列?这就是我的意思是“自动”。将列添加到循环内的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);
}
这是更有效的比以前的每个循环显式指定每一列。因为,如果某些属性发生更改或被删除等情况会发生什么?因此,这是我希望摆脱的东西。
Wat避免使用'row [“ColumnName”] = value'?你不知道'item'的属性?它是什么类型,你可以展示它吗? –
我知道我的ViewModel的属性,但我想简化它很多。想想我是否与很多物业合作,因此它效率不高?我想到了每个属性的DisplayName属性,然后将其添加到循环代码中的列中,以便它与循环中下一行的项目匹配。所以,如果我的虚拟机中有一个字符串类型的属性,那么该列将接收该项目的属性名称,以便将其添加到列中。因为,我认为你需要添加一个匹配项目记录的列。 – kryman
这是我想到的: dt.Columns.Add(属性名称的prop。去这里); row = dt.NewRow(); row [attr。道具名称。去这里] = //任何项目或item.property; 以这种方式,我不需要每次指定循环外的新列,也不需要在行中指定列的名称。 – kryman