我想用列定义数据表,其中列定义是数据表定义语句的 part 。
例如
//valid syntax
DataTable dt = new DataTable();
dt.Columns.add("num",typeof(int));
dt.Columns.add("num2",typeof(int));
但我更愿意按照
的方式做点什么//invalid syntax
DataTable dt = new DataTable(Data.Columns[] {
{"num",typeof(int)},
{"num2",typeof(int)}
};
这可能吗? 如果是,那么正确的语法是什么。
答案 0 :(得分:3)
您无法使用集合初始值设定项初始化DataTable。您可以使用AddRange
DataColumnCollection
DataTable dt = new DataTable();
dt.Columns.AddRange(new[] {
new DataColumn("num", typeof(int)),
new DataColumn("num2", typeof(int))
});
方法,但我认为它不比原始方法好得多
public static DataTable AddColumn<T>(this DataTable dt, string name)
{
dt.Columns.Add(name, typeof(T));
return dt;
}
您可以创建扩展方法,以流畅的方式添加列:
var dt = new DataTable()
.AddColumn<int>("num")
.AddColumn<int>("num2");
用法:
{{1}}