Linqを使用して2つのDataColumnsで2つのDataTablesを内部結合しようとしていますが、Linqを使用して行を取得できますが、列を取得できません。以下に示すように、列を取得するために何をしようとしたかをコメントアウトしました。
これを行う理由。
DataTableを返すLEFTJOIN、FULL JOIN、INNER JOINの3つのメソッドを作成することを計画しています。可能な限り一般的なものにしようとしていますが、以下が適切かどうかは示されていません。可能な限り最適化するためにこれを行います。
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;
}