2012-11-20 322 views
1
串接值

我的表中的数据是这样的:合并两个表,并使用LINQ

table 1: 
Id CId Message 
1  1 E:MMM 
1  1 E:NNN 
1  1 E:OOO 
1  2 E:PPP 
1  2 E:PPP 

table 2: 
Id CId Message 
1  1 W:NNN 
1  1 W:OOO 

合并使用LINQ我的输出表两张表应该是经过这样的: 结果表:

Id CId ErMessage    WrMessage 
1  1  E:MMM*E:NNN*E:OOO  W:NNN*W.OOO 
1  2  E:PPP*E:PPP 

请帮助我如何实现。

+0

这问了好几次。 [Here](http://weblogs.asp.net/bradvincent/archive/2008/11/01/linq-cheat-sheet.aspx)是您正在寻找的解决方案。下载它。随时与您保持备忘单。 (你应该看看加入示例) – nzic

+0

我没有使用连接。你能帮我解决这个问题吗? – Mani

+0

好的,首先告诉我你的表格中的不同值有多少个相同的ID。即表1:ID-1; E:MMM 表1:ID-1; E:NNN 我们可以假设这些是不同的ID吗? – nzic

回答

3
var q = 
    from t1 in 
     table1.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) 
    join 
     t2 in 
     table2.GroupBy(g => g.ID).Select(g => new 
     { 
      ID = g.Key, 
      Message = string.Join("*", g.Select(v => v.Message).ToArray()) 
     }) on t1.ID equals t2.ID 
    select new 
    { 
     ID = t1.ID, 
     ErMessage = t1.Message, 
     WrMessage = t2.Message 
    }; 
+0

谢谢Michael ... – Mani

+0

您随时欢迎 –

+0

迈克尔请再次看看我的问题。我编辑过它。 – Mani