Я хотел бы выполнить агрегированный запрос в DataTable для создания другого DataTable. Я не могу изменить SQL, который используется для создания исходного DataTable.
Исходный DataTable: (все это int)
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);
}
}
Есть ли лучший способ?