2010-08-30 29 views
3

我有一个简单的表的计数分组的关系的数字,如:我如何使用LINQ来概括这个数据 - 通过这些关系

 
| fkId | Item | 
--------------- 
| 1 | A | 
| 1 | B | 
| 1 | C | 
| 1 | D | 
| 2 | H | 
| 2 | I | 
| 3 | Y | 
| 3 | Z | 

我希望有一个LINQ查询,将第一张数Item的每个fkId,然后用给定的Item-count报告fkId的数量。

与样本数据,我想知道,我有4倍的项目1个ID,并与2个项目

所以,像2个标识:

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

我越来越有一半(“有多少项目每fkID”)与:您

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

回答

4

.GroupBy了一半了 - 现在你必须申请另一个.GroupBy做休息:

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