直接上代码:
using System.Linq;
public DataTable ProductInfoList(string month, string CINVCODE)
{
DataTable dt1 = ProductBLL.GetList();
DataTable dt2 = ProductSubBLL.GetList();
//合并两个dt的表结构(表头)
DataTable dt3 = dt1.Clone();
for (int i = 0; i < dt2.Columns.Count; i++)
{
if (dt2.Columns[i].ToString() == "ProductID")
{
continue;
}
else
{
string ColName = dt2.Columns[i].ToString();//表头
dt3.Columns.Add(ColName, typeof(decimal));//字段类型
}
}
var query = from a in dt1.AsEnumerable()
join b in dt2.AsEnumerable()
on a.Field<string>("ProductID") equals b.Field<string>("ProductID")
select a.ItemArray.Concat(b.ItemArray.Skip(1));//Skip(1): 跳过 "ProductID" 列,不添加
foreach (var obj in query)
{
DataRow dr = dt3.NewRow();
dr.ItemArray = obj.ToArray();
dt3.Rows.Add(dr);
}
return dt3;
}