【发布时间】:2013-05-24 11:26:10
【问题描述】:
我有 2 个数据表,我不知道它们的数据列列表。此列表必须在运行时提取,并用于完全外连接。
使用这些列时,需要合并2个表之间的列,我需要显示所有数据。
到目前为止,我正在做的是
- 获取常用列,使用 intersect,并实现 IEqualityComparer
- 使用这些列创建一个新数据表,以便将 2 个数据表合并到这个新表中
但是,我在第二步遇到了 Linq 问题。
到现在为止:
获取常用列
// 获取常用列 var commonColumns = dt1.Columns.OfType().Intersect(dt2.Columns.OfType(), new DataColumnComparer());新建数据表
// 创建要发送给用户的结果 数据表结果 = 新数据表(); // 添加两个表中的所有列 结果.Columns.AddRange( dt1.Columns.OfType() .Union(dt2.Columns.OfType(), new DataColumnComparer()) .Select(c => new DataColumn(c.Caption, c.DataType, c.Expression, c.ColumnMapping)).ToArray());如何从运行时提取的数据列列表中动态获取高效的完全外连接?
【问题讨论】: