【发布时间】:2012-10-30 07:37:19
【问题描述】:
如何使用 linq 从两个表中垂直连接行,我已经为此编写了一个查询,但它在第一行旁边添加,因此我的列数加倍,但我想通过下一行连接。
var dd4 = from tbl in dataTb.AsEnumerable()
join dpi in rawDataTable.AsEnumerable() on tbl["Account_No"] equals dpi["Account_No"]
select tbl.ItemArray.Concat(dpi.ItemArray).ToArray();
它给了我类似的结构
col1 col2 col3.... col24 但我的表只有 12 列,所以它添加到它旁边但是我如何在 12 列结束之后添加,然后应该开始新行。
dataTb 表数据:
chNo Chunit val1 val2 val3 val4
1 kwh 2010 2011 2012 2009
2 kvarh 2012 2011 2008 2009
原始数据表数据:
chNo Chunit val1 val2 val3 val4
1 kw 2.2 2.1 2.1 2.0
2 kvar 1.2 1.1 1.1 1.0
它是这样添加的:
1 kwh 2010 2011 2012 2009 1 kw 2.2 2.1 2.1 2.0
1 kwh 2010 2011 2012 2009 2 kvar 1.2 1.1 1.1 1.0
2 kvarh 2012 2011 2008 2009 1 kw 2.2 2.1 2.1 2.0
2 kvarh 2012 2011 2008 2009 2 kvar 1.2 1.1 1.1 1.0
但我想要这样:
1 kwh 2010 2011 2012 2009
1 kw 2.2 2.1 2.1 2.0
2 kvar 1.2 1.1 1.1 1.0
2 kvarh 2012 2011 2008 2009
1 kw 2.2 2.1 2.1 2.0
2 kvar 1.2 1.1 1.1 1.0
目前正在获得:但想要像上面那样(对于 Yograj)
1 kwh 2010 2011 2012 2009
2 kvarh 2012 2011 2008 2009
1 kw 2.2 2.1 2.1 2.0
2 kvar 1.2 1.1 1.1 1.0
1 kw 2.2 2.1 2.1 2.0
2 kvar 1.2 1.1 1.1 1.0
谢谢, @nag。
【问题讨论】:
-
您能提供示例输入和预期输出吗?
-
你能澄清一下你想得到什么吗?在 rawDataTable 中显示数据,并显示您想要获取的数据。
-
你为什么不试试
DataTable.Merge? -
@CuongLe 你能看看我更新的帖子吗。