【发布时间】:2017-09-25 18:25:15
【问题描述】:
存在类似问题,但解决方案不适用。 我正在完成一个允许用户导入 2 个数据表并加入以获得结果的小程序。以下是相关代码:
List<DataRow> list1 = ds1.Tables[0].AsEnumerable().ToList<DataRow>();
List<DataRow> list2 = ds2.Tables[0].AsEnumerable().ToList<DataRow>();
var v = (from t1 in list1
join t2 in list2
on t1.Field<string>(ds1ColInx) equals t2.Field<string>(ds2ColInx)
select new
{
t1,
t2
}).ToList();
但这显然不能输入DataGridView。现在,对于用户想要查看的每个表和列,我还有一个列名和列索引的string array。如何将其插入select 语句?
【问题讨论】:
-
“很明显,这不能输入 DataGridView”——这对我来说不太明显。你能扩展一下吗?无论如何,关于你真正的问题:为什么需要 LINQ?
-
这可能会满足您的需求,但是:weblogs.asp.net/scottgu/…
-
“类似问题存在,但解决方案不适用” 有什么具体问题可以参考吗?我很确定这已经被覆盖了。
-
@EdPlunkett 我猜想直接将结果绑定到 DataGridView 的问题是匿名类型,它不是“平面”。这些列将只是两种类型(t1 和 t2)的“ToString”,而不是这两种类型的属性。
-
@jadarnel27 你说得对,谢谢。