如何解决高效的数据表分组依据
您可以使用Linq。
var result = from row in dt.AsEnumerable()
group row by row.Field<int>("TeamID") into grp
select new
{
TeamID = grp.Key,
MemberCount = grp.Count()
};
foreach (var t in result)
Console.WriteLine(t.TeamID + " " + t.MemberCount);
解决方法
我想对一个数据表执行聚合查询以创建另一个数据表。我无法更改用于创建初始数据表的SQL。
原始数据表:(一切都是整数)
TeamID | MemberID
-------|-----------
1 | 1
1 | 2
1 | 3
2 | 4
2 | 5
所需结果:
TeamID | MemberIDCount
-------|--------------
1 | 3
2 | 2
如果是SQL,我可以做
Select TeamID,Count(*) From Table Group By TeamID
但是在我的应用程序中,我唯一知道如何处理的方法是这样的:
Dictionary<int,int> d = new Dictionary<int,int>();
foreach (DataRow dr in dt.Rows)
{
if (d.ContainsKey(dr.ID))
{
d[dr.ID] = d[dr.ID] + 1;
}
else
{
d.Add(dr.ID,1);
}
}
有没有更好的办法?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。