如何将多个DataTable的不同列,合并成一个新的DataTable?
DataTable A = new DataTable();
A.Columns.Add("MenuName", typeof(string));
A.Columns.Add("nowvisitnum", typeof(int));
DataRow drA = null;
drA = A.NewRow();
drA["MenuName"] = "库站信息";
drA["nowvisitnum"] = 20;
A.Rows.Add(drA);
drA = A.NewRow();
drA["MenuName"] = "管道信息";
drA["nowvisitnum"] = 30;
A.Rows.Add(drA);
DataTable B = new DataTable();
B.Columns.Add("MenuName", typeof(string));
B.Columns.Add("yestervisitnum", typeof(int));
DataRow drB = null;
drB = B.NewRow();
drB["MenuName"] = "库站信息";
drB["yestervisitnum"] = 4;
B.Rows.Add(drB);
drB = B.NewRow();
drB["MenuName"] = "管道信息";
drB["yestervisitnum"] = 5;
B.Rows.Add(drB);
DataTable C = new DataTable();
C.Columns.Add("MenuName", typeof(string));
C.Columns.Add("nowweek", typeof(int));
DataRow drC = null;
drC = C.NewRow();
drC["MenuName"] = "库站信息";
drC["nowweek"] = 100;
C.Rows.Add(drC);
drC = C.NewRow();
drC["MenuName"] = "管道信息";
drC["nowweek"] = 101;
C.Rows.Add(drC);
var result = from a in A.AsEnumerable()
join b in B.AsEnumerable()
on a.Field<string>("MenuName") equals b.Field<string>("MenuName")
join c in C.AsEnumerable()
on a.Field<string>("MenuName") equals c.Field<string>("MenuName")
select new
{
MenuName = a.Field<string>("MenuName"),
nowvisitnum = a.Field<int>("nowvisitnum"),
yestervisitnum = b.Field<int>("yestervisitnum"),
nowweek =c.Field<int>("nowweek"),
totaldate = DateTime.Now.ToString("yyyy-MM-dd")
};
var n1 = result.ToList();
result.ToList().ForEach(x => Console.WriteLine(x.MenuName + "-" + x.nowvisitnum + "-" + x.yestervisitnum + "-" + x.nowweek + "-" + x.totaldate));
Console.ReadKey();
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix