Linq关联两个DataTable合并为一个DataTable
DataSet ds ;
DataTable dt1= ds.Tables[0];
DataTable dt2= ds.Tables[1];
//关联
var res = from m in dt1.AsEnumerable()
from s in dt2.AsEnumerable()
where m.Field<int>("ID") == s.Field<int>("ID")
select new
{
//声明字段=属于哪个表的字段<类型>(字段名)
//字段=数据
Num1= m.Field<int?>("Num"),
Name= m.Field<string>("Name"),
Score = s.Field<decimal>("Score"),
Expand = "拓展数据"//如果需要拓展字段也可声明,数据并不一定是属于DataTable
};
//生成新table
DataTable table = new DataTable();
//表结构
table.Columns.Add("Num1");
table.Columns.Add("Name");
table.Columns.Add("Score");
table.Columns.Add("Expand");
table.Columns.Add("Expand1");
//填充数据
foreach (var obj in res)
{
//填充表对应数据,数据并非一定要是obj中的,也可以自己定义
table.Rows.Add(obj.Num1, obj.Name, obj.Score, obj.Expand,"这是拓展1");
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示