以前在复制DataTable某列的值的时候,总是循环DataTable的所有行,逐行逐行的赋值,如下代码:
//代码中假设dt中已经存在了列A
DataTable dt = GetDataTable();
DataColumn col = new DataColumn();
col.ColumnName = "B";
dt.Columns.Add(col);
foreach (DataRow dr in dt.Rows)
{
dr["B"] = dr["A"];
}
一直偶然的机会发然了DataColumn的Expression属性,查看了Expression属性的作用了后,发现复制列的功能就简化多了,如下代码:
//代码中假设dt中已经存在了列A
DataTable dt = GetDataTable();
DataColumn col = new DataColumn();
col.ColumnName="B";
col.Expression = "A";
col.DataType = dt.Columns["A"].DataType;
dt.Columns.Add(col);
其实Expression的属性的功能远远不至这个,它可以做统计列,排行列,也可以做行验证,它支持的函数也是比较的丰富,大家有兴趣好好上网查查吧。<