【问题标题】:DataTable expression refering to other DataTable column引用其他 DataTable 列的 DataTable 表达式
【发布时间】:2022-11-19 18:10:27
【问题描述】:
我有 2 个数据表,DT1 和 DT2。
DT1 有列 A1、B1 和 DT2 有列 A2、B2。
我想给 A1like A1 = A2 + B2 添加一个表达式
这是否可以在不加入或合并 2 个数据表的情况下完成,这类似于电子表格的操作方式?
有没有其他方法可以做到这一点,除了 DataTable 之外的任何其他数据结构或技术可以完成这项工作?
我看到 DataTable 无法从字符串中推断出列所属的表?
我们是否可以将这 2 个 DataTables 添加到 DataSet,然后执行引用 DataSet 中存在的表的表达式。
【问题讨论】:
标签:
c#
datatable
expression
formula
【解决方案1】:
见下面的代码
DataTable dt1 = new DataTable();
dt1.Columns.Add("ID", typeof(string));
dt1.Columns.Add("A1", typeof(int));
dt1.Columns.Add("B1", typeof(int));
DataTable dt2 = new DataTable();
dt2.Columns.Add("ID", typeof(string));
dt2.Columns.Add("A2", typeof(int));
dt2.Columns.Add("B2", typeof(int));
foreach(DataRow row in dt1.AsEnumerable())
{
DataRow match = dt2.AsEnumerable().Where(x => x.Field<string>("ID") == row.Field<string>("ID")).First();
row["A1"] = match.Field<int>("A2") + match.Field<int>("B2");
}