【发布时间】:2019-12-06 02:27:04
【问题描述】:
我使用 linq 左连接另一个数据表,这使我需要使用 Linq 为新的左连接数据表创建列。
是否无论如何都要循环遍历列以在 linq 中自动创建它?
var Dt1JoinDt2 = from dr1 in dt1.AsEnumerable()
join dr2 in dt2.AsEnumerable()
on dr1.Field<Int64>(id1) equals dr2.Field<Int64>(id2) into joinDt1AndDt2
from leftjoin in joinDt1AndDt2.DefaultIfEmpty()
select dtJoinedTable.LoadDataRow(new object[]
{
dr1.Field<String>("id"),
dr1.Field<Int64?>("col_sample"),
dr1.Field<String>("col2"),
dr1.Field<String>("colName"),
dr1.Field<String>("columns"),
dr1.Field<String>("col_no"),
......
这是我想使用循环来创建列的部分代码
dr1.Field<String>("id"),
dr1.Field<Int64?>("col_sample"),
dr1.Field<String>("col2"),
dr1.Field<String>("colName"),
dr1.Field<String>("columns"),
dr1.Field<String>("col_no"),
......
到底是不是用Linq或者C#或者其他的编码方式来做到这一点???
【问题讨论】:
-
是您选择的字符串数组中的新对象[] {}?
-
是的。我在 dt1 和 dt2 中删除了列
-
我通过分配新的字符串数组更新了代码。你能试试这个新方法吗?