有没有更有效的方法(单行优先,但不是必须的)来设置数据表列结构,而不是像下面这样的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);
}
发布于 2018-08-01 22:15:54
您可以使用LINQ。
columns.ToList().ForEach(c => dataTable.Columns.Add(c.Key, c.Value))
这基本上是一回事。
发布于 2018-08-01 22:37:34
另一种可能是使用LINQ,尽管可能不会比在单行上更“高效”:
dataTable.Columns.AddRange(columns.Keys.Select(x => new DataColumn(x, columns[x])).ToArray());
这实际上是将字典强制转换为一个DataColumn
对象数组,然后使用DataTable.Columns
的.AddRange()
方法将它们添加到DataTable而不是.Add()
。
https://stackoverflow.com/questions/51635515
复制相似问题