我知道这样的代码,
datatable_A.AsEnumerable().Join(datatable_B.AsEnumerable(),
dt2Rows => dt2Rows.Field<string>("name"),
dt1Rows => dt1Rows.Field<string>("name"),
(dt2Rows, dt1Rows) => new { dt2Rows, dt1Rows })
.ToList()
.ForEach(i => i.dt2Rows.SetField("phone number", i.dt1Rows.Field<string>("phone number")));
现在,我需要执行多个 lambda 表达式,例如,
.ForEach(i => i.dt2Rows.SetField("phone number", i.dt1Rows.Field<string>("phone number")),
m => m.dt2Rows.SetField("address", m.dt1Rows.Field<string>("address")),
k => k.dt2Rows.SetField("nickname", k.dt1Rows.Field<string>("nickname")),
d => d.dt2Rows.SetField("body weight", d.dt1Rows.Field<string>("body weight"))
);
我该怎么做?答案不应该是 lambda 表达式,任何类型的答案都可以。
谢谢!
最佳答案
如果我理解你的问题是正确的,你想在 ForEach 的每次迭代中执行多个操作,并且每次运行中的 i、m、k、d 都是相同的值,对吗?
在这种情况下,您可以简单地执行以下操作:
.ForEach(i => {
i.dt2Rows.SetField("phone number", i.dt1Rows.Field<string>("phone number"));
i.dt2Rows.SetField("address", i.dt1Rows.Field<string>("address"));
i.dt2Rows.SetField("nickname", i.dt1Rows.Field<string>("nickname"));
i.dt2Rows.SetField("body weight", i.dt1Rows.Field<string>("body weight"));
});
关于c# - 通过相同的值从另一个连接的 DataTable 更新 DataTable 的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72878632/