C# 使用单个表达式在datatable中创建列
我想用列定义datatable,其中列定义是datatable定义语句的一部分 乙二醇 但我更愿意做一些类似的事情C# 使用单个表达式在datatable中创建列,c#,datatable,C#,Datatable,我想用列定义datatable,其中列定义是datatable定义语句的一部分 乙二醇 但我更愿意做一些类似的事情 //invalid syntax DataTable dt = new DataTable(Data.Columns[] { {"num",typeof(int)}, {"num2",typeof(int)} }; 这可能吗? 如果是,正确的语法是什么。不能使用集合初始值设定项初始化DataTable。您所能使用的就是AddRange方法DataColumnCol
//invalid syntax
DataTable dt = new DataTable(Data.Columns[] {
{"num",typeof(int)},
{"num2",typeof(int)}
};
这可能吗?
如果是,正确的语法是什么。不能使用集合初始值设定项初始化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;
}
公共静态DataTable AddColumn(此DataTable dt,字符串名称)
{
添加(名称,类型(T));
返回dt;
}
用法:
var dt = new DataTable()
.AddColumn<int>("num")
.AddColumn<int>("num2");
var dt=new DataTable()
.AddColumn(“num”)
.AddColumn(“num2”);
你必须自己写。使用一个返回新数据表的静态方法,这就足够简单了,或者您可以使用装饰器模式。
var dt = new DataTable()
.AddColumn<int>("num")
.AddColumn<int>("num2");