gpt4 book ai didi

c# - 高效的数据表分组依据

转载 作者:可可西里 更新时间:2023-11-01 08:01:04 25 4
gpt4 key购买 nike

我想对一个 DataTable 执行聚合查询以创建另一个 DataTable。我无法更改用于创建初始 DataTable 的 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);
}
}

有没有更好的办法?

最佳答案

您可以使用 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);

关于c# - 高效的数据表分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8472005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com