过滤分组列值之和不为零的数据表
Posted
技术标签:
【中文标题】过滤分组列值之和不为零的数据表【英文标题】:Filtering datatable where sum of grouped column value is not zero 【发布时间】:2021-06-09 10:13:22 【问题描述】:我们能否显示分组列值不为零的数据表行。
首先,我需要按sno
分组并显示数量不为零的未分组数据。
例如: 我有一个如下的数据表:
需要这样的输出
但是我用下面的代码得到了这个
FinalDataTable = table.AsEnumerable()
.GroupBy(r => new Col1 = r["sno"])
.Select(g =>
var row = table.NewRow();
row["sno"] = g.Key.Col1;
row["amount"] = g.Sum(r => r.Field<decimal>("amount"));
return row;
).CopyToDataTable();
【问题讨论】:
代码?你试过什么?Can we display
- 是的,我们可以:)
我们很乐意为您提供帮助,但我们无法为您完成工作。你至少应该向我们展示你的一些尝试......
有效点。同意。更新了我的问题:)
【参考方案1】:
是的,您要做的是按 sno
分组,然后使用 Where 查找金额总和不为零的那些记录。然后只需使用 Select Many 将这些组解包回行。
我认为应该这样做(我假设金额是int
)
FinalDataTable = table.AsEnumerable()
.GroupBy(r => r["sno"])
.Where(g => g.Sum(r => (int)r["amount"]) != 0)
.SelectMany(r => r)
.CopyToDataTable();
这是一个活生生的例子:https://dotnetfiddle.net/ixi0aW
【讨论】:
以上是关于过滤分组列值之和不为零的数据表的主要内容,如果未能解决你的问题,请参考以下文章