我想在DataTable上执行聚合查询以创建另一个DataTable.我无法改变用于创建初始DataTable的SQL.
原始DataTable :(一切都是int)
TeamID | MemberID
-------|-----------
1 | 1
1 | 2
1 | 3
2 | 4
2 | 5
Run Code Online (Sandbox Code Playgroud)
期望的结果:
TeamID | MemberIDCount
-------|--------------
1 | 3
2 | 2
Run Code Online (Sandbox Code Playgroud)
如果它是SQL我可以做
Select TeamID, Count(*) From Table Group By TeamID
Run Code Online (Sandbox Code Playgroud)
但在我的应用程序中,我知道如何处理这个的唯一方法是这样的:
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);
}
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的办法?
我有包含以下数据的数据表
Number Type Order count
1 1 R 1
1 1 R 1
1 1 R 1
1 2 R 1
Run Code Online (Sandbox Code Playgroud)
我希望得到这个结果
Number Type Order count
1 1 R 3
1 2 R 1
Run Code Online (Sandbox Code Playgroud)
如何按三列分组
var result = dt.AsEnumerable()
.GroupBy(x => {x.Field<string>("Number"))//need to group by Type and order also need to sum te total counts
Run Code Online (Sandbox Code Playgroud)