首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linQ怎么合并同一列的数据

2012-12-16 
linQ如何合并同一列的数据现在有一张表 FROMTOTIMEBODYAB11/111111AB11/112222AB11/123333AB11/124444怎么

linQ如何合并同一列的数据
现在有一张表
 FROM    TO      TIME      BODY
     A         B       11/11       1111
     A         B       11/11       2222
     A         B       11/12       3333
     A         B       11/12       4444

怎么样才能得出
FROM    TO    NUM    TIME           BODY
     A         B        2      11/11       1111,2222
     A         B        2      11/12       3333,4444

这样的结果呢=. =

LinQ里面group后面好像只能写一个字段...还不能合并列的内容..
[最优解释]
var query=db.YourTable.ToList().GroupBy(t=>new{t.FROM,t.To,t.Time})
            .Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=>s.Body).ToArray())})
[其他解释]
本帖最后由 q107770540 于 2012-11-09 10:58:51 编辑

var query=db.YourTable.GroupBy(t=>new{t.FROM,t.To,t.Time})
            .Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=>s.Body).ToArray())})

[其他解释]
VB.NET与C#的写法区别,参考我的另一篇blog:
http://blog.csdn.net/q107770540/article/details/7629681
[其他解释]
引用:
本帖最后由 q107770540 于 2012-11-09 10:58:51 编辑
            Body=string.Join(",",g.Select(s=>s.Body).ToArray())

=. =他说不识别string join 的方法
base {System.SystemException} = {"LINQ to Entities 不识别方法“System.String Join(System.String, System.String[])”,因此该方法无法转换为存储表达式。"}
[其他解释]
引用:
var query=db.YourTable.ToList().GroupBy(t=>new{t.FROM,t.To,t.Time})
            .Select(g=>new {FROM=g.Key.From,TO=g.Key.To,NUM=g.Count(),Time=g.Key.Time,Body=string.Join(",",g.Select(s=……


我弱爆了.....

热点排行