首页 > 解决方案 > Linq UNION ALL 在同一个数据表上?

问题描述

我需要对 3 组重复的字段进行联合,我需要将它们全部加入到一个结果中:

ID1  | NAME1  |   DESC1  |   ID2  |   NAME2  |   DESC2  |   ID3  |   NAME3  |   DESC3

到:

ID  |  NAME | DESC

数据在 C# DataTable 中,你怎么能像在 SQL 中那样做 UNION ALL?

标签: c#linqdatatableunion-all

解决方案


您可以使用SelectMany为每条记录构建一个包含 3 个项目的数组:

table.SelectMany(row => new []
{
    new { ID = row.ID1, NAME = row.NAME1, DESC = row.DESC1 },
    new { ID = row.ID2, NAME = row.NAME2, DESC = row.DESC2 },
    new { ID = row.ID3, NAME = row.NAME3, DESC = row.DESC3 }
});

推荐阅读