我正在尝试使用 Linq 在 2 个 DataColumns 上内部加入 2 个 DataTables,我可以使用 Linq 获取行但是我无法获取列。我已经注释掉了我试图获取列的方法,如下所示。
这样做的原因。
我计划制作 3 种方法,LEFT JOIN、FULL JOIN 和 INNER JOIN,它们将返回一个 DataTable,我试图使其尽可能通用,我没有说明以下是否是一个好方法,我需要这样做尽可能优化。
public static DataTable InnerJoin
(DataTable dt1, DataTable dt2,DataColumn Parent,DataColumn Child)
{
DataTable result = new DataTable();
var query =
from d in dt1.AsEnumerable()
join c in dt2.AsEnumerable() on d[Parent] equals c[Child]
select new { d, c };
/*
var columns = from d in dt1.Columns.Cast<DataColumn>()
from c in dt2.Columns.Cast<DataColumn>()
select new{c,d}
foreach (var column in columns)
{
result.Columns.Add(column);
}
**/
foreach (var row in query)
{
result.Rows.Add(row);
}
return result;
}