如何解决根据VB.NET中的列值更新DataView
Id | GroupName | Count
1 DummyName 1
2 DummyName 1
3 StubName 1
4 DummyName 1
我需要根据该行具有相同 GroupName 的总行数更新每行的 Count 列值。所需的输出如下:
Id | GroupName | Count
1 DummyName 3
2 DummyName 3
3 StubName 1
4 DummyName 3
我尝试这样做的逻辑是:
步骤 1:更新每一行的 Count 列值
For Each row As DaTarow In tbl.Rows
row("Count") = From r in tbl _
Group r By key = tbl.Columns("sites_siteid") into Group _
where Group.Count() > 1
Select Group.Count()
Next
但似乎我在搞乱 LINQ 或 ....
我需要在 VB.Net 中执行此操作,我知道如何在 sql 中执行此操作,但我正在努力在 Vb.Net 代码中完成此操作。 非常感谢任何帮助或见解。
提前致谢:)
解决方法
首先,创建一个 Dictionary
映射 sites_siteid
到具有相同 sites_siteid
的行数:
Dim countMap = (From r In tbl.Rows Group r By Key = r.Field(Of String)("sites_siteid") Into Group,Count() Select New With { .SiteId = Key,.Count = Group.Count }) _
.ToDictionary(Function(ic) ic.SiteId,Function(ic) ic.Count)
然后,用所需的计数更新每一行:
For Each row As DataRow In tbl.Rows
row("Count") = countMap(row.Field(Of String)("sites_siteid"))
Next
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。