使用单个表达式在数据表中创建列

时间:2014-06-18 16:17:24

标签: c# datatable

我想用列定义数据表,其中列定义是数据表定义语句的 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)}
};

这可能吗? 如果是,那么正确的语法是什么。

1 个答案:

答案 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}}