Linq关联两个DataTable合并为一个DataTable
阅读原文时间:2023年09月02日阅读:6

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("ID") == s.Field("ID")
select new
{

//声明字段=属于哪个表的字段<类型>(字段名)

//字段=数据
Num1= m.Field("Num"),
Name= m.Field("Name"),
Score = s.Field("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");
}