【问题标题】:C# Join two DataTables Linq to obtain flatten resultsC# Join 两个 DataTables Linq 以获得 flatten 结果
【发布时间】:2017-03-30 10:04:29
【问题描述】:

以这种方式构造的数据表有 2 个:

  • 第一个 DataTable 有两个列:Customer、Email_Key
  • 第二个 DataTable 有两个列:IdCustomer(等于 Email_Key)、Email

Dt1 中的 Foreach 行可以对应 Dt2 中的许多行(1 到 N)加入 CustomerId 上的 EmailKey,所以我想使用 SelectMany 函数将结果展平在 1 条记录中。我怎样才能做到这一点?

【问题讨论】:

  • D1.Email_Key 是否等于 D2.IdCustomer
  • 是的@Fabio 我已经省略了,现在我更新
  • 我不知道该怎么做。当然我不希望其他人做这项工作,不明白你为什么这么认为。
  • 扁平化结果并不能真正为您买一杯咖啡。加入两个表后你有一个表(id,email[])。因此,您需要在查询中进行两个选择: table.Select(x => x.email.Select(y => .....))
  • 也许你忘记了这是一个数据表,不是一个严格类型的对象,没有关系或嵌套对象。

标签: c# linq join datatable


【解决方案1】:

我认为 SelectMany 不是您想要的。 SelectMany.

根据您要执行的操作,您可以尝试 Union 或 distinct。 您可能想稍微改一下您的问题,包括您是否尝试“扁平化”选择或代码中的结果(在填充 DataTables 之后)。

【讨论】:

  • foreach 客户可以对应 N 封邮件。如何以扁平化模式对结果进行分组?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
  • 2020-03-03
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多