首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >同名C# linq分组

同名C# linq分组
EN

Stack Overflow用户
提问于 2012-10-15 14:36:35
回答 1查看 302关注 0票数 0

我有一个数据表,比如

代码语言:javascript
复制
Date      status       recno
---------------------------------
2012      DST;Par        1
------------------------------------
2012      DST            2
--------------------------------
2012      DST            3
--------------------------------------------
2012      DST;Ts         4
-----------------------------------

目前,我编写了一个查询,如下所示:

代码语言:javascript
复制
var data = from b in table.AsEnumerable()
           where b.DateInterval>=fromDate && b.DateInterval<=toDate
           group b by b.Channel1_status into g                       
           select new
           {
               AccountNo=accountNumber,
               Status = statusLabels[g.Key].ToString(),
               StatusCount = g.Count(),
           };

但是,它将这些结果返回给我:

代码语言:javascript
复制
Result: DST-2 
        DST;par-1 and DST;Ts-1

Expected: DST-4  DST;par-1 and DST;Ts-1

请给我解释一下我做错了什么,以及如何得到预期的结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-15 14:56:11

如果您想以DST开头的状态对所有变量进行计数,同时仍然对变量(DST;par,DST;ts)进行分组,则可以手动执行此操作。

类似这样的东西(没有经过测试,但我想你已经明白了):

代码语言:javascript
复制
var dst = data.FirstOrDefault(x => x.Status == "DST");
if (dst != null) {
    foreach (var group in data.Where(x => x != dst && x.Status.StartsWith("DST")) {
        dst.StatusCount += group.StatusCount;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12890442

复制
相关文章

相似问题

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