如何通过 LINQ 获取两个数据表的笛卡尔映射

本文关键字:数据表 两个 笛卡尔 映射 LINQ 何通过 获取 | 更新日期: 2023-09-27 18:31:57

我有两个datatables,我想在两个datatables之间做一个Cartesian mapping,使用LINQ

例如,如果我有两个数据表DT1DT2

DT1 :

1   A
2   B
3   C
<小时 />

DT2 :

1   D
2   E
3   F
<小时 />

我想要结果:

    A    D
    A    E
    A    F
    B    D
    B    E
    B    F
    C    D
    C    E
    C    F

如何通过 LINQ 获取两个数据表的笛卡尔映射

试试这个:

var newDatatable = from p1 in dt1.AsEnumerable()
                   from p2 in dt2.AsEnumerable()
                   select new {p1, p2};

然后将newDatatable填充到新的DataTable中。

from d1 in DT1
from d2 in DT2
select new {d1.col1, d2.col1,}