c# - 如何在 C# 中将 Linq count 与 group by 一起使用

标签 c# linq datatable

我有一个看起来像这样的数据表
datatable input
基本上我希望它按列 featurename(distinct) 进行分组,其中它应该在工作量和完整列中求和
指定所有 featureid,featurename 以逗号分隔
count of the featureid
分配给comman分隔
现在我希望数据表看起来像这样
enter image description here
不知道怎么用计数 代码

var result5= dtTaskandBugs.AsEnumerable().GroupBy(x => x["Functional Area"])
                               .Select(item => new
                               {
                                   FunctionalArea = item.Key,

                                   Completedsum = item.Sum(y => Convert.ToDecimal(y["Completed"])),
                                   effortsum = item.Sum(z => Convert.ToDecimal(z["effort"])),
                                   storyids = string.Join(",", item.Select(a => a["Storyid"]).Distinct()),
                                   storiesename= string.Join(",", item.Select(b => b["StoryName"]).Distinct()),
                                   Featureid = string.Join(",", item.Select(c => c["Featureid"]).Distinct()),
                                   Featurename= string.Join(",", item.Select(d => d["FeatureName"]).Distinct()),

                               });

最佳答案

使用 Count() 您将获得分组值的计数。 尝试像这样使用 Linq:

from s in dtTaskandBugs.AsEnumerable()
                        group s by s.Field<string>("Functional Area")
                            into grp
                            orderby grp.Key
                            select new { 
                                   FunctionalArea = grp.Key,
                                   Completedsum = grp.Sum(y => Convert.ToDecimal(y["Completed"])),
                                   effortsum = grp.Sum(z => Convert.ToDecimal(z["effort"])),
                                   storyids = string.Join(",", grp.Select(a => a["Storyid"]).Distinct()),
                                   storiesename= string.Join(",", grp.Select(b => b["StoryName"]).Distinct()),
                                   Featureid = string.Join(",", grp.Select(c => c["Featureid"]).Distinct()),
                                   Featurename= string.Join(",", grp.Select(d => d["FeatureName"]).Distinct()),
                                   Count = grp.Count()          // <----------------
 };

关于c# - 如何在 C# 中将 Linq count 与 group by 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52032141/

相关文章:

c# - TFS - 跟踪文件何时被删除

c# - 在 C# 中,您可以使 Windows 窗体应用程序作为服务启动吗?

javascript - 如何使用javascript动态地将json数组传递给数据表

jquery - 使用 jQuery Datatable,如何使搜索/条目等位于同一行

c# - 枚举 DataTable,过滤项目,然后还原为 DataTable

c# - Image.FromFile 为无效图像格式抛出 OutOfMemoryException 是否有原因?

c# - 如何在单个 LINQ 中获得两个不同的聚合?

c# - 按名称顺序分组

c# - 日期时间到字符串转换显示错误

c# - 是否可以确定 IEnumerable<T> 是否已延迟执行挂起?