如何使用LINQ汇总此数据 – 按这些关系的计数分组的关系数

我有一个简单的表,如:

 |  fkId | 项目|
 ---------------
 |  1 |  A |
 |  1 |  B |
 |  1 |  C |
 |  1 |  D |
 |  2 |  H |
 |  2 | 我|
 |  3 |  Y |
 |  3 |  Z |

我想要一个LINQ查询,它首先计算每个fkId项的数量,然后用给定的项目数来报告fkId的数量。

通过样本数据,我想知道我有1x ID和4x项目,2x ID和2x项目

所以,像:

 |  ItemCount |  fkIdsWithItemCount |
 ----------------------------------
 |  4 |  1 |
 |  2 |  2 |

我正在中途(“每个fkID有多少项目”):

MyTable .GroupBy(i => i.FkID) .Select(i => i.Count()) 

你有一个.GroupBy中途 – 现在你必须应用另一个.GroupBy来完成剩下的工作:

 MyTable.GroupBy(i => i.FkID) .GroupBy(group => group.Count()) .Select(group => new { ItemCount = group.Key, FkIdsWithItemCount = group.Count() });