高效的数据表分组依据

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

以上是 高效的数据表分组依据 的全部内容, 来源链接: utcz.com/qa/402322.html

回到顶部