首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >DataTable对结果进行分组

DataTable对结果进行分组
EN

Stack Overflow用户
提问于 2012-10-16 20:02:43
回答 2查看 755关注 0票数 1

我想在数据表中按名称分组,LastName和其余的应该在同一行中。有人能帮我一下吗?

我的DataTable:

代码语言:javascript
复制
 Name   LastName    1    3    2
 kiki    ha         FF
 lola    mi             AA
 ka      xe                   UU
 kiki    ha                   SS

我想让DataTable按名称分组:

代码语言:javascript
复制
Name   LastName   1    3     2
kiki    ha        FF         SS 
lola    mi             AA 
ka      xe                   UU

我的新代码:

代码语言:javascript
复制
var result11 = from t1 in newtable.AsEnumerable()
               group t1 by new { Name = t1.Field<String>("Name"), LastName = t1.Field<String>("LastName") } into grp
               select new
               {
                   Name = grp.Key.Name,
                   LastName = grp.Key.LastName,

                   //Something must be there     
               };
EN

Stack Overflow用户

回答已采纳

发布于 2012-10-16 20:10:58

添加以下行,而不是注释(//something must be there):

代码语言:javascript
复制
C1 = String.Join(",", grp.Select(r=>r.Field<String>("1"))),
C2 = String.Join(",", grp.Select(r=>r.Field<String>("2"))),
C3 = String.Join(",", grp.Select(r=>r.Field<String>("3")))

在输出中获得三个新列,这三个列聚合了132列的值。

如果组的某一列中有多个值,则所有值都将显示,并用逗号(,)分隔。

如果您确定每个组的每列最多只能有一个值,那么您可以简单地这样做:

代码语言:javascript
复制
C1 = grp.Max(r => r.Field<String>("1")),
C3 = grp.Max(r => r.Field<String>("3")),
C2 = grp.Max(r => r.Field<String>("2"))
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12914261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档