c# - 如何使用 linq 内连接后获取两个数据表的列

标签 c# linq datatable

我的 linq 如下所示

from dt1 in dsResults.Tables[0].AsEnumerable()
join dt2 in dsResults.Tables[1].AsEnumerable()
 on dt1 .Field<decimal>("RecordId") equals dt2.Field<decimal>("RecordId2")
 select dt1 ; 

这将仅检索 dt1 的列。我怎样才能让两个表的列都出现?

最佳答案

我可以按照下面的线程执行此操作 Create combined DataTable from two DataTables joined with LINQ. C#

     DataTable targetTable = dsResults.Tables[0].Clone();
        var dt2Columns = dsResults.Tables[1].Columns.OfType<DataColumn>().Select(dc =>
            new DataColumn(dc.ColumnName, dc.DataType, dc.Expression, dc.ColumnMapping));
        targetTable.Columns.AddRange(dt2Columns.ToArray());
        var rowData =
            from row1 in dsResults.Tables[0].AsEnumerable()
            join row2 in dsResults.Tables[1].AsEnumerable()
                on row1.Field<decimal>("RecordId") equals row2.Field<decimal>("RecordId2")
            select row1.ItemArray.Concat(row2.ItemArray).ToArray();
        foreach (object[] values in rowData)
            targetTable.Rows.Add(values);

关于c# - 如何使用 linq 内连接后获取两个数据表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12403178/

相关文章:

c# - 使用基于属性的 LINQ 从列表中选择对象

c# - 如何将 XML 读入 DataTable?

c# - 管理每个环境的配置

c# - 使用 LINQ to XML 遍历 HTML 表

c# - 我可以对同一个端点使用普通的 http 和 https 吗

javascript - 将 sTyle 设置为动态 jquery 数据表中的所有列

datatable - 创建后如何更改 YUI 数据网格上的数据源

c# - 什么是用于 c# 和 .net 的良好商业 tar 流库?

c# - 在 LINQ WHERE 子句中有条件地允许 null

c# - 将查询转换为字符串时出错