合并两个表并使用linq连接值

时间:2012-11-20 11:10:03

标签: c# 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 

请帮助我如何实现。

1 个答案:

答案 0 :(得分: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
    };