是否有一种更有效的方法(最好是单行的,但不是必需的)来设置数据表的列结构,而不是像我下面所述的foreach方法?
// Identifiers used are:
var dataTable = new DataTable();
var columns = new System.Collections.Generic.Dictionary<string, System.Type>()
{
{ "Column 1", typeof(int) },
{ "Column 2", typeof(string) },
{ "Column 3", typeof(string) }
};
foreach (System.Collections.Generic.KeyValue<string, System.Type> column in columns)
{
dataTable.Columns.Add(column.Key, column.Value);
}
答案 0 :(得分:3)
您可以使用LINQ。
columns.ToList().ForEach(c => dataTable.Columns.Add(c.Key, c.Value))
基本上是同一件事。
答案 1 :(得分:0)
使用LINQ的另一种可能性,尽管除了单行之外可能没有更多的“效率”:
dataTable.Columns.AddRange(columns.Keys.Select(x => new DataColumn(x, columns[x])).ToArray());
这实际上将字典转换为DataColumn
对象的数组,然后使用.AddRange()
的{{1}}方法将它们添加到DataTable而不是DataTable.Columns
。